Skip to content

Commit 2358056

Browse files
dwijnandWojciechMazur
authored andcommitted
Tighten java annot value parsing
[Cherry-picked 07dce3f]
1 parent 1ceb356 commit 2358056

File tree

4 files changed

+22
-2
lines changed

4 files changed

+22
-2
lines changed

compiler/src/dotty/tools/dotc/parsing/JavaParsers.scala

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -363,8 +363,8 @@ object JavaParsers {
363363
def annotation(): Option[Tree] = {
364364
def classOrId(): Tree =
365365
val id = qualId()
366-
if in.lookaheadToken == CLASS then
367-
in.nextToken()
366+
if in.token == DOT && in.lookaheadToken == CLASS then
367+
accept(DOT)
368368
accept(CLASS)
369369
TypeApply(
370370
Select(

tests/pos/i20026/J.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
package p;
2+
3+
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
4+
class J { }

tests/pos/i20026/S.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
class S

tests/pos/i20026/TestInstance.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package p;
2+
3+
import java.lang.annotation.ElementType;
4+
import java.lang.annotation.Inherited;
5+
import java.lang.annotation.Retention;
6+
import java.lang.annotation.RetentionPolicy;
7+
import java.lang.annotation.Target;
8+
9+
@Target(ElementType.TYPE)
10+
@Retention(RetentionPolicy.RUNTIME)
11+
@Inherited
12+
public @interface TestInstance {
13+
enum Lifecycle { PER_CLASS, PER_METHOD; }
14+
Lifecycle value();
15+
}

0 commit comments

Comments
 (0)