diff --git a/.all-contributorsrc b/.all-contributorsrc
index 28d946f30a..e04c9b717b 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -7819,6 +7819,15 @@
"contributions": [
"bug"
]
+ },
+ {
+ "login": "gudzpoz",
+ "name": "gudzpoz",
+ "avatar_url": "https://avatars.githubusercontent.com/u/14026120?v=4",
+ "profile": "https://kyo.iroiro.party/",
+ "contributions": [
+ "bug"
+ ]
}
],
"contributorsPerLine": 7,
diff --git a/docs/pages/pmd/projectdocs/credits.md b/docs/pages/pmd/projectdocs/credits.md
index 4795947746..04fbc8f37a 100644
--- a/docs/pages/pmd/projectdocs/credits.md
+++ b/docs/pages/pmd/projectdocs/credits.md
@@ -930,180 +930,181 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
fsapatin π |
gearsethenry π |
gracia19 π |
- guo fei π |
+ gudzpoz π |
+ guo fei π |
gurmsc5 π |
gwilymatgearset π» π |
haigsn π |
hemanshu070 π |
henrik242 π |
hongpuwu π |
- hvbtup π» π |
+ hvbtup π» π |
igniti GmbH π |
ilovezfs π |
imax-erik π |
itaigilo π |
jakivey32 π |
jbennett2091 π |
- jcamerin π |
+ jcamerin π |
jkeener1 π |
jmetertea π |
johnra2 π» |
johnzhao9 π |
josemanuelrolon π» π |
kabroxiko π» π |
- karthikaiyasamy π |
+ karthikaiyasamy π |
karwer π |
kaulonline π |
kdaemonv π |
kdebski85 π π» |
kenji21 π» π |
kfranic π |
- khalidkh π |
+ khalidkh π |
koalalam π |
krzyk π |
lasselindqvist π |
lgemeinhardt π |
lihuaib π |
liqingjun123 π |
- lonelyma1021 π |
+ lonelyma1021 π |
lpeddy π |
lujiefsi π» |
lukelukes π» |
lyriccoder π |
marcelmore π |
matchbox π |
- matthiaskraaz π |
+ matthiaskraaz π |
meandonlyme π |
mikesive π |
milossesic π |
mluckam π» π |
mohan-chinnappan-n π» |
mriddell95 π |
- mrlzh π |
+ mrlzh π |
msloan π |
mucharlaravalika π |
mvenneman π |
nareshl119 π |
nicolas-harraudeau-sonarsource π |
noerremark π |
- novsirion π |
+ novsirion π |
nwcm π π π» |
oggboy π |
oinume π |
orimarko π» π |
pablogomez2197 π |
pacvz π» |
- pallavi agarwal π |
+ pallavi agarwal π |
parksungrin π |
patpatpat123 π |
patriksevallius π |
pbrajesh1 π |
phoenix384 π |
piotrszymanski-sc π» |
- plan3d π |
+ plan3d π |
poojasix π |
prabhushrikant π |
pujitha8783 π |
r-r-a-j π |
raghujayjunk π |
rajeshveera π |
- rajeswarreddy88 π |
+ rajeswarreddy88 π |
recdevs π |
reudismam π» π |
rijkt π |
rillig-tk π |
rmohan20 π» π |
rnveach π |
- rxmicro π |
+ rxmicro π |
ryan-gustafson π» π |
sabi0 π |
scais π |
schosin π |
screamingfrog π΅ |
sebbASF π |
- sergeygorbaty π» |
+ sergeygorbaty π» |
shilko2013 π |
shiomiyan π |
simeonKondr π |
snajberk π |
sniperrifle2004 π |
snuyanzin π π» |
- soloturn π |
+ soloturn π |
soyodream π |
sratz π |
stonio π |
sturton π» π |
sudharmohan π |
suruchidawar π |
- svenfinitiv π |
+ svenfinitiv π |
szymanp23 π π» |
tashiscool π |
test-git-hook π |
testation21 π» π |
thanosa π |
tiandiyixian π |
- tobwoerk π |
+ tobwoerk π |
tprouvot π π» |
trentchilders π |
triandicAnt π |
trishul14 π |
tsui π |
wangzitom12306 π |
- winhkey π |
+ winhkey π |
witherspore π |
wjljack π |
wuchiuwong π |
xingsong π |
xioayuge π |
xnYi9wRezm π» π |
- xuanuy π |
+ xuanuy π |
xyf0921 π |
yalechen-cyw3 π |
yasuharu-sato π |
zenglian π |
zgrzyt93 π» π |
zh3ng π |
- zt_soft π |
+ zt_soft π |
ztt79 π |
zzzzfeng π |
ΓrpΓ‘d MagosΓ‘nyi π |
diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md
index 197b7a4aec..4b87f9bfae 100644
--- a/docs/pages/release_notes.md
+++ b/docs/pages/release_notes.md
@@ -32,6 +32,7 @@ The old rule names still work but are deprecated.
### π Fixed Issues
* java
* [#4532](https://github.com/pmd/pmd/issues/4532): \[java] Rule misnomer for JUnit* rules
+ * [#5261](https://github.com/pmd/pmd/issues/5261): \[java] Record patterns with empty deconstructor lists lead to NPE
* java-errorprone
* [#5067](https://github.com/pmd/pmd/issues/5067): \[java] CloseResource: False positive for FileSystems.getDefault()
@@ -49,6 +50,7 @@ The old rule names still work but are deprecated.
* [#4965](https://github.com/pmd/pmd/pull/4965): \[java] Rename JUnit rules with overly restrictive names - [Juan MartΓn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod)
* [#5225](https://github.com/pmd/pmd/pull/5225): \[java] Fix #5067: CloseResource: False positive for FileSystems.getDefault() - [Lukas GrΓ€f](https://github.com/lukasgraef) (@lukasgraef)
* [#5241](https://github.com/pmd/pmd/pull/5241): Ignore javacc code in coverage report - [Juan MartΓn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod)
+* [#5264](https://github.com/pmd/pmd/pull/5264): \[java] Fix NPE with empty pattern list - [ClΓ©ment Fournier](https://github.com/oowekyala) (@oowekyala)
{% endtocmaker %}
diff --git a/pmd-java/etc/grammar/Java.jjt b/pmd-java/etc/grammar/Java.jjt
index ef9406b9c3..630520f4e7 100644
--- a/pmd-java/etc/grammar/Java.jjt
+++ b/pmd-java/etc/grammar/Java.jjt
@@ -1889,13 +1889,13 @@ void RecordPattern():
(Annotation())* ReferenceType() RecordStructurePattern()
}
-void RecordStructurePattern() #void:
+void RecordStructurePattern() #PatternList:
{}
{
"(" [ ComponentPatternList() ] ")"
}
-void ComponentPatternList() #PatternList :
+void ComponentPatternList() #void :
{}
{
ComponentPattern() ( "," ComponentPattern() )*
diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java
index bf944eace8..36b02e94d8 100644
--- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java
+++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java
@@ -97,4 +97,14 @@ public class RecordPatterns {
System.out.println("String " + s);
}
}
+
+
+ record Empty(){}
+ void foo(Object o) {
+ if (o instanceof Empty
+ || o instanceof Empty())
+ System.out.println("Empty " + o);
+ }
+
+ ;
}
diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt
index 04bed57df7..44dc24bba6 100644
--- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt
+++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt
@@ -1,7 +1,7 @@
+- CompilationUnit[@PackageName = ""]
+- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "RecordPatterns", @CanonicalName = "RecordPatterns", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = false, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "RecordPatterns", @Static = false, @TopLevel = true, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC]
+- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)]
- +- ClassBody[@Empty = false, @Size = 18]
+ +- ClassBody[@Empty = false, @Size = 21]
+- RecordDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "RecordPatterns$Point", @CanonicalName = "RecordPatterns.Point", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = true, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = true, @RegularClass = false, @RegularInterface = false, @SimpleName = "Point", @Static = true, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
| +- ModifierList[@EffectiveModifiers = (JModifier.STATIC, JModifier.FINAL), @ExplicitModifiers = ()]
| +- RecordComponentList[@Empty = false, @Size = 2, @Varargs = false]
@@ -512,38 +512,73 @@
| +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "String ", @Empty = false, @Image = "\"String \"", @Length = 7, @LiteralText = "\"String \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
| +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "s", @Name = "s", @ParenthesisDepth = 0, @Parenthesized = false]
+- MethodDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "test4", @Overridden = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
- +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
- +- VoidType[]
- +- FormalParameters[@Empty = false, @Size = 1]
- | +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
- | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
- | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"]
- | | +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1]
- | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"]
- | | +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1]
- | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"]
- | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "bo", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
- +- Block[@Empty = false, @Size = 1, @containsComment = false]
- +- IfStatement[@Else = false]
- +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
- | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "bo", @Name = "bo", @ParenthesisDepth = 0, @Parenthesized = false]
- | +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
- | +- RecordPattern[]
- | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"]
- | +- PatternList[@Empty = false, @Size = 1]
- | +- RecordPattern[]
- | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"]
- | +- PatternList[@Empty = false, @Size = 1]
- | +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
- | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
- | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "s", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
- +- Block[@Empty = false, @Size = 1, @containsComment = false]
- +- ExpressionStatement[]
- +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
- +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
- | +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
- | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
- +- ArgumentList[@Empty = false, @Size = 1]
- +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false]
- +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "String ", @Empty = false, @Image = "\"String \"", @Length = 7, @LiteralText = "\"String \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
- +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "s", @Name = "s", @ParenthesisDepth = 0, @Parenthesized = false]
+ | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
+ | +- VoidType[]
+ | +- FormalParameters[@Empty = false, @Size = 1]
+ | | +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
+ | | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
+ | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"]
+ | | | +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1]
+ | | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"]
+ | | | +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1]
+ | | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"]
+ | | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "bo", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
+ | +- Block[@Empty = false, @Size = 1, @containsComment = false]
+ | +- IfStatement[@Else = false]
+ | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
+ | | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "bo", @Name = "bo", @ParenthesisDepth = 0, @Parenthesized = false]
+ | | +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
+ | | +- RecordPattern[]
+ | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"]
+ | | +- PatternList[@Empty = false, @Size = 1]
+ | | +- RecordPattern[]
+ | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"]
+ | | +- PatternList[@Empty = false, @Size = 1]
+ | | +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE]
+ | | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
+ | | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "s", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
+ | +- Block[@Empty = false, @Size = 1, @containsComment = false]
+ | +- ExpressionStatement[]
+ | +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
+ | +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
+ | | +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
+ | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
+ | +- ArgumentList[@Empty = false, @Size = 1]
+ | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false]
+ | +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "String ", @Empty = false, @Image = "\"String \"", @Length = 7, @LiteralText = "\"String \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
+ | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "s", @Name = "s", @ParenthesisDepth = 0, @Parenthesized = false]
+ +- RecordDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "RecordPatterns$Empty", @CanonicalName = "RecordPatterns.Empty", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = true, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = true, @RegularClass = false, @RegularInterface = false, @SimpleName = "Empty", @Static = true, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE]
+ | +- ModifierList[@EffectiveModifiers = (JModifier.STATIC, JModifier.FINAL), @ExplicitModifiers = ()]
+ | +- RecordComponentList[@Empty = true, @Size = 0, @Varargs = false]
+ | +- RecordBody[@Empty = true, @Size = 0]
+ +- MethodDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "foo", @Overridden = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true]
+ | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
+ | +- VoidType[]
+ | +- FormalParameters[@Empty = false, @Size = 1]
+ | | +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL]
+ | | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()]
+ | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Object"]
+ | | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "o", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL]
+ | +- Block[@Empty = false, @Size = 1, @containsComment = false]
+ | +- IfStatement[@Else = false]
+ | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.CONDITIONAL_OR, @ParenthesisDepth = 0, @Parenthesized = false]
+ | | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
+ | | | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "o", @Name = "o", @ParenthesisDepth = 0, @Parenthesized = false]
+ | | | +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
+ | | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Empty"]
+ | | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false]
+ | | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "o", @Name = "o", @ParenthesisDepth = 0, @Parenthesized = false]
+ | | +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
+ | | +- RecordPattern[]
+ | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Empty"]
+ | | +- PatternList[@Empty = true, @Size = 0]
+ | +- ExpressionStatement[]
+ | +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false]
+ | +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false]
+ | | +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false]
+ | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"]
+ | +- ArgumentList[@Empty = false, @Size = 1]
+ | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false]
+ | +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "Empty ", @Empty = false, @Image = "\"Empty \"", @Length = 6, @LiteralText = "\"Empty \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false]
+ | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "o", @Name = "o", @ParenthesisDepth = 0, @Parenthesized = false]
+ +- EmptyDeclaration[]
diff --git a/pom.xml b/pom.xml
index 8f0474ab59..9d4e2061ab 100644
--- a/pom.xml
+++ b/pom.xml
@@ -94,7 +94,7 @@
${maven.compiler.test.target}
1.9.24
5.9.1
- 5.8.2
+ 5.11.2
1.9.20
5.0
@@ -963,7 +963,7 @@
org.junit.platform
junit-platform-suite
- 1.10.2
+ 1.11.2
test
@@ -1092,13 +1092,13 @@
3.25.5
-
org.junit.platform
junit-platform-commons
- 1.8.2
+ 1.11.2
test