From 5e4e0d5b01749105ae9c429a7c8e8eb4eae37209 Mon Sep 17 00:00:00 2001 From: rochala Date: Tue, 8 Mar 2022 15:23:25 +0100 Subject: [PATCH 1/3] add private inteface methods parsing in Javaparser --- compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala | 2 +- tests/pos/i12956.java | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 tests/pos/i12956.java diff --git a/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala b/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala index f5f016d740d2..4611554a01a3 100644 --- a/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala +++ b/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala @@ -594,7 +594,7 @@ object JavaParsers { val vparams = formalParams() if (!isVoid) rtpt = optArrayBrackets(rtpt) optThrows() - val bodyOk = !inInterface || mods.isOneOf(Flags.DefaultMethod | Flags.JavaStatic) + val bodyOk = !inInterface || mods.isOneOf(Flags.DefaultMethod | Flags.JavaStatic | Flags.Private) val body = if (bodyOk && in.token == LBRACE) methodBody() diff --git a/tests/pos/i12956.java b/tests/pos/i12956.java new file mode 100644 index 000000000000..b29796d48b71 --- /dev/null +++ b/tests/pos/i12956.java @@ -0,0 +1,3 @@ +interface Foo { + private void bar() {} +} From 4eaffa74dc9e3c4bf6ab84639fd5736c94c6d9ea Mon Sep 17 00:00:00 2001 From: rochala Date: Tue, 8 Mar 2022 15:30:29 +0100 Subject: [PATCH 2/3] change Private flag to PrivateMethod --- compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala b/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala index 4611554a01a3..731201036459 100644 --- a/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala +++ b/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala @@ -594,7 +594,7 @@ object JavaParsers { val vparams = formalParams() if (!isVoid) rtpt = optArrayBrackets(rtpt) optThrows() - val bodyOk = !inInterface || mods.isOneOf(Flags.DefaultMethod | Flags.JavaStatic | Flags.Private) + val bodyOk = !inInterface || mods.isOneOf(Flags.DefaultMethod | Flags.JavaStatic | Flags.PrivateMethod) val body = if (bodyOk && in.token == LBRACE) methodBody() From 8c9d42b800f30d9aa5063d09b9bbcebcf9040c34 Mon Sep 17 00:00:00 2001 From: rochala Date: Wed, 9 Mar 2022 08:25:04 +0100 Subject: [PATCH 3/3] revert change from Private flag to PrivateMethod --- compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala b/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala index 731201036459..4611554a01a3 100644 --- a/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala +++ b/compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala @@ -594,7 +594,7 @@ object JavaParsers { val vparams = formalParams() if (!isVoid) rtpt = optArrayBrackets(rtpt) optThrows() - val bodyOk = !inInterface || mods.isOneOf(Flags.DefaultMethod | Flags.JavaStatic | Flags.PrivateMethod) + val bodyOk = !inInterface || mods.isOneOf(Flags.DefaultMethod | Flags.JavaStatic | Flags.Private) val body = if (bodyOk && in.token == LBRACE) methodBody()