Open felixhao28 opened 5 years ago
Can you include the language-java version that you are testing against?
d48e7137f6634cc094f092b68e6b110f51f47630
might be related, extends
does not work well with full qualifiers either:
class RenderType extends com.jfinal.plugin.ehcache.RenderType {
public static final int BEETL_RENDER = 6;
}
This looks like a regression, because it was fixed at some point, if I remember correctly. I will investigate.
The regression is caused in these lines:
the constraint must be followed by a variable name
prevents java.io.File
to be recognized as a type.
That's not correct. It does get recognised, the regex skips the first item in fully qualified class name - just need to fix that. It would be tricky to fix all of the situations - I have a tree-sitter PR that would address this issue (and bunch of others).
It would be fixed naturally if java.io.File
is recoginized as a type and fall into object-type
scope to be parsed...
@sadikovi If you agree type in constructor call should be rendered as type (where langs like cpp & ts do so), you can take a look at this branch at your convenience, which is come up to solve #216.
It is simple enough by just doing following things:
(?=\\()
match to object-type
, to allow type to be recognized in a constructor call.function-call
and parens
from anonymous-classes-and-new
, and patch a (...)
matching for constructor calls.Effect:
Update:
Oh, sorry for that I ignored the extends
case. What I talked about is about the new
case in the title, and it's related to object-type
. The extends
case is caused by object-type-inherited
.
Description
Expected behavior: [What you expect to happen]
"java.io" after
new
is not recognized as part of class name. It should be separated "java", ".", "io".