-
Bug
-
Resolution: Fixed
-
P3
-
None
-
b24
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8285028 | 11.0.16-oracle | Vicente Arturo Romero Zaldivar | P3 | Resolved | Fixed | b04 |
JDK-8281554 | 11.0.15 | Liam Miller-Cushon | P3 | Resolved | Fixed | b02 |
javac crashes on the program, which contains a type annotation on a local variable with an inferred intersection type.
```
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@Target({ElementType.TYPE_USE, ElementType.LOCAL_VARIABLE})
@interface A {}
class T {
void t() {
@A var c = g(1, 1L);
}
<X> X g(X a, X b) {
return a;
}
}
```
```
javac -fullversion T.java
javac full version "16-ea+34-2216"
...
java.lang.AssertionError: Cannot add metadata to an intersection type
at jdk.compiler/com.sun.tools.javac.code.Type$IntersectionClassType.cloneWithMetadata(Type.java:1257)
at jdk.compiler/com.sun.tools.javac.code.Type$IntersectionClassType.cloneWithMetadata(Type.java:1239)
at jdk.compiler/com.sun.tools.javac.code.Type.annotatedType(Type.java:402)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions$1.visitClassType(TypeAnnotations.java:626)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions$1.visitClassType(TypeAnnotations.java:620)
at jdk.compiler/com.sun.tools.javac.code.Type$ClassType.accept(Type.java:1010)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.typeWithAnnotations(TypeAnnotations.java:702)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.typeWithAnnotations(TypeAnnotations.java:537)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.separateAnnotationsKinds(TypeAnnotations.java:358)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitVarDef(TypeAnnotations.java:1266)
```
```
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@Target({ElementType.TYPE_USE, ElementType.LOCAL_VARIABLE})
@interface A {}
class T {
void t() {
@A var c = g(1, 1L);
}
<X> X g(X a, X b) {
return a;
}
}
```
```
javac -fullversion T.java
javac full version "16-ea+34-2216"
...
java.lang.AssertionError: Cannot add metadata to an intersection type
at jdk.compiler/com.sun.tools.javac.code.Type$IntersectionClassType.cloneWithMetadata(Type.java:1257)
at jdk.compiler/com.sun.tools.javac.code.Type$IntersectionClassType.cloneWithMetadata(Type.java:1239)
at jdk.compiler/com.sun.tools.javac.code.Type.annotatedType(Type.java:402)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions$1.visitClassType(TypeAnnotations.java:626)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions$1.visitClassType(TypeAnnotations.java:620)
at jdk.compiler/com.sun.tools.javac.code.Type$ClassType.accept(Type.java:1010)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.typeWithAnnotations(TypeAnnotations.java:702)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.typeWithAnnotations(TypeAnnotations.java:537)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.separateAnnotationsKinds(TypeAnnotations.java:358)
at jdk.compiler/com.sun.tools.javac.code.TypeAnnotations$TypeAnnotationPositions.visitVarDef(TypeAnnotations.java:1266)
```
- backported by
-
JDK-8281554 AssertionError: Cannot add metadata to an intersection type
-
- Resolved
-
-
JDK-8285028 AssertionError: Cannot add metadata to an intersection type
-
- Resolved
-
- relates to
-
JDK-8236210 javac generates wrong annotation for fields generated from record components
-
- Resolved
-
- links to
-
Commit openjdk/jdk11u-dev/1db4ed1a
-
Commit openjdk/jdk/81f39ed3
-
Review openjdk/jdk11u-dev/794
-
Review openjdk/jdk/4095
(2 links to)