Skip to content

Crash report: error: AsSuperVisitor: type is not an erased subtype of supertype. #3791

@kennknowles

Description

@kennknowles

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.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions