-
Notifications
You must be signed in to change notification settings - Fork 437
Crash report: error: AsSuperVisitor: type is not an erased subtype of supertype. #3791
Copy link
Copy link
Closed
Description
Steps to reproduce:
git clone --depth 1 --branch checker-crash-2 https://github.com/kennknowles/beam
cd beam
./gradlew compileJava
The output is very long, as the error occurs in many places. Despite instructions to paste the whole thing, I will just paste one example:
error: AsSuperVisitor: type is not an erased subtype of supertype.
type: PInput
superType: PCollection<? extends Object>
; The Checker Framework crashed. Please report the crash.
Compilation unit: /Users/klk/GitHub/apache/beam/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/WindowIntoTranslation.java
Last visited tree at line 53 column 9:
AppliedPTransform<?, ?, Window.Assign<?>> transform, SdkComponents components) {
Exception: java.lang.Throwable; java.lang.Throwable
at org.checkerframework.javacutil.BugInCF.<init>(BugInCF.java:27)
at org.checkerframework.framework.type.AsSuperVisitor.errorTypeNotErasedSubtypeOfSuperType(AsSuperVisitor.java:165)
at org.checkerframework.framework.type.AsSuperVisitor.visitDeclared_Declared(AsSuperVisitor.java:349)
at org.checkerframework.framework.type.AsSuperVisitor.visitDeclared_Declared(AsSuperVisitor.java:29)
at org.checkerframework.framework.util.AtmCombo.accept(AtmCombo.java:314)
at org.checkerframework.framework.type.visitor.AbstractAtmComboVisitor.visit(AbstractAtmComboVisitor.java:65)
at org.checkerframework.framework.type.AsSuperVisitor.visit(AsSuperVisitor.java:96)
at org.checkerframework.framework.type.AsSuperVisitor.asSuper(AsSuperVisitor.java:78)
at org.checkerframework.framework.util.AnnotatedTypes.asSuper(AnnotatedTypes.java:112)
at org.checkerframework.framework.util.AnnotatedTypes.castedAsSuper(AnnotatedTypes.java:140)
at org.checkerframework.framework.type.DefaultTypeHierarchy.visitDeclared_Declared(DefaultTypeHierarchy.java:504)
at org.checkerframework.framework.type.DefaultTypeHierarchy.visitDeclared_Declared(DefaultTypeHierarchy.java:43)
at org.checkerframework.framework.util.AtmCombo.accept(AtmCombo.java:314)
at org.checkerframework.framework.type.DefaultTypeHierarchy.isSubtype(DefaultTypeHierarchy.java:185)
at org.checkerframework.checker.nullness.KeyForAnnotatedTypeFactory$KeyForTypeHierarchy.isSubtype(KeyForAnnotatedTypeFactory.java:141)
at org.checkerframework.framework.type.DefaultTypeHierarchy.visitWildcardSubtype(DefaultTypeHierarchy.java:1128)
at org.checkerframework.framework.type.DefaultTypeHierarchy.visitWildcard_Declared(DefaultTypeHierarchy.java:959)
at org.checkerframework.framework.type.DefaultTypeHierarchy.visitWildcard_Declared(DefaultTypeHierarchy.java:43)
at org.checkerframework.framework.util.AtmCombo.accept(AtmCombo.java:684)
at org.checkerframework.framework.type.DefaultTypeHierarchy.isSubtype(DefaultTypeHierarchy.java:185)
at org.checkerframework.checker.nullness.KeyForAnnotatedTypeFactory$KeyForTypeHierarchy.isSubtype(KeyForAnnotatedTypeFactory.java:141)
at org.checkerframework.framework.type.DefaultTypeHierarchy.isSubtypeCaching(DefaultTypeHierarchy.java:301)
at org.checkerframework.framework.type.DefaultTypeHierarchy.isContainedWildcard(DefaultTypeHierarchy.java:421)
at org.checkerframework.framework.type.DefaultTypeHierarchy.isContainedBy(DefaultTypeHierarchy.java:380)
at org.checkerframework.framework.type.DefaultTypeHierarchy.visitTypeArgs(DefaultTypeHierarchy.java:560)
at org.checkerframework.framework.type.DefaultTypeHierarchy.visitDeclared_Declared(DefaultTypeHierarchy.java:511)
at org.checkerframework.framework.type.DefaultTypeHierarchy.visitDeclared_Declared(DefaultTypeHierarchy.java:43)
at org.checkerframework.framework.util.AtmCombo.accept(AtmCombo.java:314)
at org.checkerframework.framework.type.DefaultTypeHierarchy.isSubtype(DefaultTypeHierarchy.java:185)
at org.checkerframework.checker.nullness.KeyForAnnotatedTypeFactory$KeyForTypeHierarchy.isSubtype(KeyForAnnotatedTypeFactory.java:141)
at org.checkerframework.framework.type.DefaultTypeHierarchy.isSubtype(DefaultTypeHierarchy.java:161)
at org.checkerframework.common.basetype.BaseTypeVisitor.commonAssignmentCheck(BaseTypeVisitor.java:2492)
at org.checkerframework.common.basetype.BaseTypeVisitor.checkTypeArguments(BaseTypeVisitor.java:2802)
at org.checkerframework.common.basetype.BaseTypeValidator.visitParameterizedType(BaseTypeValidator.java:471)
at org.checkerframework.common.basetype.BaseTypeValidator.visitDeclared(BaseTypeValidator.java:300)
at org.checkerframework.common.basetype.BaseTypeValidator.visitDeclared(BaseTypeValidator.java:39)
at org.checkerframework.framework.type.AnnotatedTypeMirror$AnnotatedDeclaredType.accept(AnnotatedTypeMirror.java:918)
at org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.scan(AnnotatedTypeScanner.java:199)
at org.checkerframework.framework.type.visitor.AnnotatedTypeScanner.visit(AnnotatedTypeScanner.java:187)
at org.checkerframework.common.basetype.BaseTypeValidator.isValid(BaseTypeValidator.java:85)
at org.checkerframework.common.basetype.BaseTypeVisitor.validateType(BaseTypeVisitor.java:4180)
at org.checkerframework.common.basetype.BaseTypeVisitor.validateTypeOf(BaseTypeVisitor.java:4168)
at org.checkerframework.common.basetype.BaseTypeVisitor.visitVariable(BaseTypeVisitor.java:1184)
at org.checkerframework.common.basetype.BaseTypeVisitor.visitVariable(BaseTypeVisitor.java:171)
at com.sun.tools.javac.tree.JCTree$JCVariableDecl.accept(JCTree.java:968)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
at org.checkerframework.framework.source.SourceVisitor.scan(SourceVisitor.java:88)
at org.checkerframework.common.basetype.BaseTypeVisitor.scan(BaseTypeVisitor.java:299)
at org.checkerframework.common.basetype.BaseTypeVisitor.scan(BaseTypeVisitor.java:171)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
at com.sun.source.util.TreeScanner.visitMethod(TreeScanner.java:203)
at org.checkerframework.framework.source.SourceVisitor.visitMethod(SourceVisitor.java:106)
at org.checkerframework.common.basetype.BaseTypeVisitor.visitMethod(BaseTypeVisitor.java:742)
at org.checkerframework.common.basetype.BaseTypeVisitor.visitMethod(BaseTypeVisitor.java:171)
at com.sun.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:898)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
at org.checkerframework.framework.source.SourceVisitor.scan(SourceVisitor.java:88)
at org.checkerframework.common.basetype.BaseTypeVisitor.scan(BaseTypeVisitor.java:299)
at org.checkerframework.common.basetype.BaseTypeVisitor.scan(BaseTypeVisitor.java:171)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:187)
at org.checkerframework.framework.source.SourceVisitor.visitClass(SourceVisitor.java:94)
at org.checkerframework.common.basetype.BaseTypeVisitor.processClassTree(BaseTypeVisitor.java:384)
at org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:337)
at org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:171)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:808)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:82)
at org.checkerframework.framework.source.SourceVisitor.scan(SourceVisitor.java:88)
at org.checkerframework.common.basetype.BaseTypeVisitor.scan(BaseTypeVisitor.java:299)
at org.checkerframework.common.basetype.BaseTypeVisitor.scan(BaseTypeVisitor.java:171)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:90)
at com.sun.source.util.TreeScanner.scan(TreeScanner.java:105)
at com.sun.source.util.TreeScanner.scanAndReduce(TreeScanner.java:113)
at com.sun.source.util.TreeScanner.visitClass(TreeScanner.java:187)
at org.checkerframework.framework.source.SourceVisitor.visitClass(SourceVisitor.java:94)
at org.checkerframework.common.basetype.BaseTypeVisitor.processClassTree(BaseTypeVisitor.java:384)
at org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:337)
at org.checkerframework.common.basetype.BaseTypeVisitor.visitClass(BaseTypeVisitor.java:171)
at com.sun.tools.javac.tree.JCTree$JCClassDecl.accept(JCTree.java:808)
at com.sun.source.util.TreePathScanner.scan(TreePathScanner.java:56)
at org.checkerframework.framework.source.SourceVisitor.visit(SourceVisitor.java:82)
at org.checkerframework.framework.source.SourceChecker.typeProcess(SourceChecker.java:916)
at org.checkerframework.common.basetype.BaseTypeChecker.typeProcess(BaseTypeChecker.java:502)
at org.checkerframework.common.basetype.BaseTypeChecker.typeProcess(BaseTypeChecker.java:495)
at org.checkerframework.javacutil.AbstractTypeProcessor$AttributionTaskListener.finished(AbstractTypeProcessor.java:190)
Here are some more examples of just the primary error:
error: AsSuperVisitor: type is not an erased subtype of supertype.
type: @Initialized @NonNull PInput
superType: @Initialized @NonNull PCollection<? extends @Initialized @Nullable Object>
; The Checker Framework crashed. Please report the crash.
Compilation unit: /Users/klk/GitHub/apache/beam/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/WindowIntoTranslation.java
Last visited tree at line 53 column 9:
AppliedPTransform<?, ?, Window.Assign<?>> transform, SdkComponents components) {
error: AsSuperVisitor: type is not an erased subtype of supertype.
type: @Initialized @NonNull PInput
superType: @Initialized @NonNull PCollectionList<? extends @Initialized @Nullable Object>
; The Checker Framework crashed. Please report the crash.
Compilation unit: /Users/klk/GitHub/apache/beam/runners/core-construction-java/src/main/java/org/apache/beam/runners/core/construction/FlattenTranslator.java
Last visited tree at line 49 column 7:
AppliedPTransform<?, ?, Flatten.PCollections<?>> transform, SdkComponents components) {
I may not understand what is going on. Certainly PInput is not a subtype of PCollectionList<T> nor PCollection<T> but rather the converse is true.
I am running this with checkerframework 3.5.0. You can vary the version by editing the relevant line in BeamModulePlugin.groovy.
Reactions are currently unavailable