Commit Graph
61 Commits
Author SHA1 Message Date
Clément Fournier 40ce9313ae Deprecate R[UN]SIGNEDSHIFT
No usages to report
2018-08-20 18:08:21 +02:00
Andreas Dangel c362f5a77f [java] Prepare for Java 11 2018-07-19 22:00:34 +02:00
Clément Fournier 07516ee8ac Deprecate isTernary on ConditionalExpression 2018-07-03 02:13:22 +02:00
Clément Fournier 80e27d049a Add doc to some AST nodes 2018-06-26 12:21:22 +02:00
Andreas Dangel a46288547d Rework "var" support for java10 using void production for LocalVariableType 2018-05-28 21:18:59 +02:00
Andreas Dangel 0b0479d7c0 Prevent using "var" as type name, annotation name or enum with Java 10 2018-05-28 20:07:10 +02:00
Andreas Dangel 8f4b2647c4 Merge branch 'master' into java10-basic-support 2018-05-21 10:07:05 +02:00
Andreas Dangel 93347719b3 [java] Rename ASTType.isVarType to ASTType.isTypeInferred 2018-05-11 16:17:00 +02:00
Juan Martín Sotuyo Dodero 5de405d23f [java] Fix scoping inconsistencies
- Reduce LocalScope creations. Method parameters and method locals have
the same visibility / reachability, so they should be in the same scope.
 - Fix the grammar `assert` lookahead. There is no need to use `(`
 - Fix illegal test code (shadowing of parameters is illegal)
 - Update Scope tests to deal with changes
 - Fixes #1051
2018-05-06 20:42:33 -03:00
Andreas Dangel 18dfba939c [java] First step for java10 local variable type inference 2018-05-01 17:14:06 +02:00
Juan Martín Sotuyo Dodero 32af9cabf2 [java] Update valid identifiers
- Newer Java versions have allowed for a lot more tokens in identifiers
2018-02-18 04:44:27 -03:00
Clément Fournier 22596e5176 Add ghost production for TypeAnnotation to cleanup the grammar
Type annotations can be nearly everywhere since Java 8, which makes the grammar
really hard to read when the check for correct jdk version is repeated all over
the place.
2018-02-16 23:53:37 +01:00
Juan Martín Sotuyo Dodero f9df6ed01e [java] Fix grammar for <> in Java 1.8
- Fixes #888
 - Allow the contents of an anonymous class to use diamong notation, but
the anonymous class itself can't use it
2018-01-29 14:10:40 -03:00
Andreas Dangel 109f458dbf Fixes #793 [java] Parser error with private method in nested classes in interfaces
*   Remember old state to allow nesting
*   Fix ASTMethodDeclaration.isInterfaceMember
*   Extended tests
2017-12-22 12:03:20 +01:00
Andreas Dangel 64b862eef9 Fixes #793 [java] Parser error with private method in nested classes in interfaces 2017-12-20 22:42:34 +01:00
Juan Martín Sotuyo Dodero 05927af574 [java] Properly resolve array types
- Honor dimensions of arrays
 - Resolve types for allocations as well as declarations of arrays
2017-10-26 22:31:29 -03:00
gonzalo c00400ef77 Fix try with final resource 2017-10-18 08:50:06 -03:00
Andreas Dangel 6590a358e6 Support concise try-with-resources with java9 2017-09-23 00:15:08 +02:00
Andreas Dangel f30eb4b5ff Use semantic lookahead for the module productions
The new keyword are only "restricted keywords" and can still be used
as identifiers.
2017-09-22 23:43:43 +02:00
Andreas Dangel 1020bf73db Enhance grammar to parse Java 9 module-info.java 2017-09-22 21:35:24 +02:00
Andreas Dangel 672f9216dd Simplify grammar: TypeArguments is not used here, it's resolved
as a child by ClassOrInterfaceType already
2017-09-22 15:32:24 +02:00
Andreas Dangel 77222904de Check for diamond operator for anonymous classes 2017-09-22 15:32:19 +02:00
Andreas Dangel 722b2b1657 Allow nested private methods 2017-09-22 13:33:08 +02:00
Andreas Dangel cfa4b5b85c Add Java9 Language Module, Update grammar
* Java8 mode now rejects private methods in interfaces
* Java9 mode now rejects "_" as identifier
2017-09-22 12:19:38 +02:00
Juan Martín Sotuyo Dodero 0822218574 Simplify expressions 2017-06-01 11:56:48 -03:00
snap252 2460402ea8 test case & adapted grammar for annotated generic return type
public static <T> @Nullable T getNullableEnum() {
		return null;
	}
2017-06-01 15:00:20 +02:00
Git Guru b8d435235f fixed/removed unneeded change
@@ -1488,7 +1488,7 @@ void MethodDeclaration(int modifiers) :
 {jjtThis.setModifiers(modifiers);}
 {
   [ TypeParameters() ]
-  ResultType() MethodDeclarator() [ "throws" NameList() ]
+  [(Annotation() {checkForBadTypeAnnotations();})+] ResultType()
MethodDeclarator() [ "throws" NameList() ]
2017-06-01 10:13:29 +02:00
snap252 a4754e9fc9 I hear voices ... and they tell me to like multi dimensional arrays
private static void testMultiDimArrayWithAnnotations() {
		// ever used a 2D-Array in java??
		Object x = new Object @NonNull[2] @Nullable[1] @NonNull[3];
	}
2017-05-30 15:15:44 +02:00
snap252 7997297e0b test case for
public void createNonNullArray() {
		return new MetaColumn @NonNull [value];
	}
2017-05-30 14:13:38 +02:00
snap252 b5474cdcf8 test case and fix for
public static <T extends @NonNull Enum<T>> getEnum() {
		return null;
	}
2017-05-30 14:05:29 +02:00
snap252 0660c7298a + simplified 2017-05-30 12:31:03 +02:00
snap252 d314a2c301 test case for
private byte @Nullable [] getBytes(){
		return null;
	}
2017-05-30 12:20:26 +02:00
Git Guru 7a4766e8a6 [java] Parsing Problem with Annotation for Array Member Types #417 2017-05-30 10:52:09 +02:00
Git Guru 68ab7048cb *[java]* Java 8 parsing problem with annotations for wildcards #414 2017-05-29 18:20:12 +02:00
Andreas Dangel 4e72eef495 [java] Parser Error for empty statements
Fixes #378
2017-05-20 21:28:39 +02:00
Andreas Dangel aaf9419344 Merge branch 'issue-309' 2017-03-27 21:21:38 +02:00
Andreas Dangel abe2e8561c Fixes #309: [java] Parse error on method reference 2017-03-27 21:07:28 +02:00
Andreas Dangel 5cd0f2e928 Merge branch 'issue-257' 2017-02-20 16:13:37 +01:00
Juan Martín Sotuyo DoderoandAndreas Dangel 8f22e69560 Ugly workaround that don't need to change AST 2017-02-20 16:00:39 +01:00
Juan Martín Sotuyo DoderoandAndreas Dangel 907972f0ca [java] Improve grammar for CastExpression
- Provide a definite fix for casts. This allowed to remove a bunch of hacks.
 - I had to change the grammar a bit... `(int)` is now a cast with a
    PrimitiveType as child, not a Type with a nested PrimitiveType. This is due
    to JavaCC completely ignoring whatever you place in the LOOKAHEAD in favor
    of just looking the follow-up expression completely.
 - Removing the hacks raised an issue with expression orders, caused also by JavaCC's
    disregard to LOOKAHEAD contents
2017-02-20 16:00:39 +01:00
Andreas Dangel 0ef09b2c0a Merge branch 'issue-208'
Closes #211 (rebased onto pmd/5.4.x)
2017-01-27 20:11:49 +01:00
Juan Martín Sotuyo DoderoandAndreas Dangel c53e1790e1 [java] Allow more than 1 annotation in local classes
- This fixes #208
2017-01-27 20:00:08 +01:00
Andreas Dangel bbc9abd4e2 Merge branch 'issue-206'
Closes #210 (rebased onto pmd/5.4.x)
2017-01-27 19:50:50 +01:00
Juan Martín Sotuyo DoderoandAndreas Dangel 455b1c4ded Fix grammar for annotation members
- The lookahead (3 tokens) was too small, and without reaching the opening
    parenthesis assumed it was parsing a method and not a field.
 - Using a larger lookahead solves the issue.
 - Fixes #206
2017-01-27 19:38:48 +01:00
Andreas Dangel 5c1a0a7abe Merge branch 'issue-207'
Closes #209 (rebased onto pmd/5.4.x)
2017-01-27 19:26:56 +01:00
Juan Martín Sotuyo DoderoandAndreas Dangel 33fd84d521 [java] Support generics in method references
- Fixes #207
 - Extend the Java grammar to support generics in
    method references: `Type::<Generic>method`
2017-01-27 19:10:42 +01:00
Andreas Dangel e280151987 pmd-cpp/pmd-java: checkstyle fixes 2016-12-16 15:48:53 +01:00
Andreas Dangel 2158a792ff Merge branch 'simplify-variable-declarator-id-parsing' of https://github.com/Monits/pmd into pr-118
# Conflicts:
#	pmd-java/etc/grammar/Java.jjt
2016-10-30 18:51:44 +01:00
Andreas Dangel 10e4cc7290 Merge branch 'faster-parse' of https://github.com/Monits/pmd into pr-115
# Conflicts:
#	pmd-java/etc/grammar/Java.jjt
2016-10-30 18:12:54 +01:00
Juan Martín Sotuyo DoderoandAndreas Dangel 283dc00a43 Replace syntactic lookahead with semantic one
- They are the same, but JavaCC seems to handle this one better.
2016-10-16 14:01:26 +02:00