aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java4
-rw-r--r--javaparser-core/src/main/javacc/java.jj4
-rw-r--r--javaparser-testing/src/test/java/com/github/javaparser/ast/body/ConstructorDeclarationTest.java17
3 files changed, 23 insertions, 2 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java
index 58ee6da80..d8cf253ce 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java
@@ -62,6 +62,10 @@ public final class ConstructorDeclaration extends CallableDeclaration<Constructo
this(null, EnumSet.noneOf(Modifier.class), new NodeList<>(), new NodeList<>(), new SimpleName(), new NodeList<>(), new NodeList<>(), new BlockStmt());
}
+ public ConstructorDeclaration(String name) {
+ this(null, EnumSet.of(Modifier.PUBLIC), new NodeList<>(), new NodeList<>(), new SimpleName(name), new NodeList<>(), new NodeList<>(), new BlockStmt());
+ }
+
public ConstructorDeclaration(EnumSet<Modifier> modifiers, String name) {
this(null, modifiers, new NodeList<>(), new NodeList<>(), new SimpleName(name), new NodeList<>(), new NodeList<>(), new BlockStmt());
}
diff --git a/javaparser-core/src/main/javacc/java.jj b/javaparser-core/src/main/javacc/java.jj
index c88befb93..6e47f2d3c 100644
--- a/javaparser-core/src/main/javacc/java.jj
+++ b/javaparser-core/src/main/javacc/java.jj
@@ -1993,7 +1993,7 @@ Expression PrimaryPrefix():
[ args = Arguments() { hasArgs=true; } ]
{
if (hasArgs) {
- ret = new MethodCallExpr(range(begin, token()), null, emptyList(), name, args);
+ ret = new MethodCallExpr(range(begin, token()), null, null, name, args);
} else {
ret = new NameExpr(name);
}
@@ -2890,7 +2890,7 @@ BlockStmt BlockParseStart():
Statement BlockStatementParseStart():
{ Statement ret; }
-{ ret = BlockStatement() <EOF> { return ret; } }
+{ (LOOKAHEAD(3) ret = BlockStatement()|ret = ExplicitConstructorInvocation()) <EOF> { return ret; } }
ImportDeclaration ImportDeclarationParseStart():
{ ImportDeclaration ret; }
diff --git a/javaparser-testing/src/test/java/com/github/javaparser/ast/body/ConstructorDeclarationTest.java b/javaparser-testing/src/test/java/com/github/javaparser/ast/body/ConstructorDeclarationTest.java
new file mode 100644
index 000000000..633c8f50d
--- /dev/null
+++ b/javaparser-testing/src/test/java/com/github/javaparser/ast/body/ConstructorDeclarationTest.java
@@ -0,0 +1,17 @@
+package com.github.javaparser.ast.body;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+
+public class ConstructorDeclarationTest {
+ @Test
+ public void acceptsSuper() {
+ ConstructorDeclaration cons = new ConstructorDeclaration("Cons");
+ cons.createBody().addStatement("super();");
+
+ assertEquals("public Cons() {\n" +
+ " super();\n" +
+ "}", cons.toString());
+ }
+}