Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Javalang doesn't support Java8 default keyword. #29

Closed
roipoussiere opened this issue Sep 30, 2016 · 3 comments
Closed

Javalang doesn't support Java8 default keyword. #29

roipoussiere opened this issue Sep 30, 2016 · 3 comments

Comments

@roipoussiere
Copy link
Contributor

roipoussiere commented Sep 30, 2016

Let this simple Java8 code:

public interface Test{ default void save() {} }

which works according to javac:

echo "public interface Test{ default void save() {} }" > Test.java
javac Test.java

But javalang throws a Syntax error. Here working in a clean virtual env., tested both with Py2 and Py3:

import javalang
tree = javalang.parse.parse("package javalang.brewtab.com; public interface Test{ default void save() {} }")

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parse.py", line 53, in parse
    return parser.parse()
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parser.py", line 110, in parse
    return self.parse_compilation_unit()
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parser.py", line 296, in parse_compilation_unit
    type_declaration = self.parse_type_declaration()
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parser.py", line 341, in parse_type_declaration
    return self.parse_class_or_interface_declaration()
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parser.py", line 354, in parse_class_or_interface_declaration
    type_declaration = self.parse_normal_interface_declaration()
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parser.py", line 429, in parse_normal_interface_declaration
    body = self.parse_interface_body()
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parser.py", line 945, in parse_interface_body
    declaration = self.parse_interface_body_declaration()
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parser.py", line 960, in parse_interface_body_declaration
    declaration = self.parse_interface_member_declaration()
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parser.py", line 986, in parse_interface_member_declaration
    declaration = self.parse_interface_method_or_field_declaration()
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parser.py", line 992, in parse_interface_method_or_field_declaration
    java_type = self.parse_type()
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parser.py", line 461, in parse_type
    self.illegal("Expected type")
  File "/home/roipoussiere/.local/lib/python2.7/site-packages/javalang/parser.py", line 119, in illegal
    raise JavaSyntaxError(description, at)
javalang.parser.JavaSyntaxError

It seems this set should contains 'default' to support Java8.

@c2nes
Copy link
Owner

c2nes commented Sep 30, 2016

Thanks @roipoussiere, just pushed up a fix to master

@roipoussiere
Copy link
Contributor Author

Thank you for this quick fix!

@roipoussiere roipoussiere changed the title Javalang don't support Java8 default keyword. Javalang don't supports Java8 default keyword. Sep 30, 2016
@roipoussiere roipoussiere changed the title Javalang don't supports Java8 default keyword. Javalang doesn't supports Java8 default keyword. Sep 30, 2016
@roipoussiere roipoussiere changed the title Javalang doesn't supports Java8 default keyword. Javalang doesn't support Java8 default keyword. Sep 30, 2016
@roipoussiere
Copy link
Contributor Author

Well, not really fixed. :-)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants