Skip to content

Java source with java dependency results in ClassfileParser error #2782

@olafurpg

Description

@olafurpg
// Foo.java
public final class Foo {
    public static final class Builder extends com.google.protobuf.GeneratedMessageV3.Builder<Builder> {}
}
$ dotc -debug -classpath $(coursier fetch com.google.protobuf:protobuf-java:3.3.1 -p) Foo.java
exception caught when loading class Builder: java.lang.AssertionError: assertion failed: failure to resolve inner class:
externalName = com.google.protobuf.AbstractMessageLite$Builder,
outerName = com.google.protobuf.AbstractMessageLite,
innerName = Builder
owner.fullName = com.google.protobuf.AbstractMessageLite
while parsing /Users/ollie/.coursier/cache/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.3.1/protobuf-java-3.3.1.jar(com/google/protobuf/AbstractMessage$Builder.class)
exception caught when loading class Builder: java.lang.AssertionError: assertion failed: failure to resolve inner class:
externalName = com.google.protobuf.AbstractMessageLite$Builder,
outerName = com.google.protobuf.AbstractMessageLite,
innerName = Builder
owner.fullName = com.google.protobuf.AbstractMessageLite
while parsing /Users/ollie/.coursier/cache/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.3.1/protobuf-java-3.3.1.jar(com/google/protobuf/AbstractMessage$Builder.class)
assertion failure for com.google.protobuf.GeneratedMessageV3.type <:< ?{ Builder: ? }, frozen = false

exception occurred while typechecking foo.java

exception occurred while compiling foo.java
Exception in thread "main" java.lang.AssertionError: assertion failed: failure to resolve inner class:
externalName = com.google.protobuf.AbstractMessageLite$Builder,
outerName = com.google.protobuf.AbstractMessageLite,
innerName = Builder
owner.fullName = com.google.protobuf.AbstractMessageLite
while parsing /Users/ollie/.coursier/cache/v1/https/repo1.maven.org/maven2/com/google/protobuf/protobuf-java/3.3.1/protobuf-java-3.3.1.jar(com/google/protobuf/AbstractMessage$Builder.class)
	at scala.Predef$.assert(Predef.scala:170)
	at dotty.tools.dotc.core.classfile.ClassfileParser$innerClasses$.innerSymbol$1(ClassfileParser.scala:854)
	at dotty.tools.dotc.core.classfile.ClassfileParser$innerClasses$.classSymbol(ClassfileParser.scala:864)
	at dotty.tools.dotc.core.classfile.ClassfileParser.classNameToSymbol(ClassfileParser.scala:81)
	at dotty.tools.dotc.core.classfile.ClassfileParser$ConstantPool.getClassSymbol(ClassfileParser.scala:977)
	at dotty.tools.dotc.core.classfile.ClassfileParser$ConstantPool.getSuperClass(ClassfileParser.scala:1046)
	at dotty.tools.dotc.core.classfile.ClassfileParser.parseParents$1(ClassfileParser.scala:106)
	at dotty.tools.dotc.core.classfile.ClassfileParser.parseClass(ClassfileParser.scala:122)
	at dotty.tools.dotc.core.classfile.ClassfileParser.run(ClassfileParser.scala:57)
	at dotty.tools.dotc.core.ClassfileLoader.load(SymbolLoaders.scala:326)
	at dotty.tools.dotc.core.ClassfileLoader.doComplete(SymbolLoaders.scala:322)
	at dotty.tools.dotc.core.SymbolLoader.complete(SymbolLoaders.scala:272)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:221)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.unforcedDecls(SymDenotations.scala:354)
	at dotty.tools.dotc.core.SymDenotations$ClassDenotation.typeParamsFromDecls(SymDenotations.scala:1313)
	at dotty.tools.dotc.core.SymDenotations$ClassDenotation.typeParams(SymDenotations.scala:1326)
	at dotty.tools.dotc.core.TypeApplications$.op$13(TypeApplications.scala:223)
	at dotty.tools.dotc.core.TypeApplications$.typeParams$extension(TypeApplications.scala:215)
	at dotty.tools.dotc.core.TypeApplications$.typeParamSymbols$extension(TypeApplications.scala:246)
	at dotty.tools.dotc.core.classfile.ClassfileParser.processClassType$1(ClassfileParser.scala:295)
	at dotty.tools.dotc.core.classfile.ClassfileParser.sig2type$1(ClassfileParser.scala:325)
	at dotty.tools.dotc.core.classfile.ClassfileParser.dotty$tools$dotc$core$classfile$ClassfileParser$$sigToType(ClassfileParser.scala:420)
	at dotty.tools.dotc.core.classfile.ClassfileParser.parseAttribute$1(ClassfileParser.scala:522)
	at dotty.tools.dotc.core.classfile.ClassfileParser.parseAttributes$$anonfun$1(ClassfileParser.scala:593)
	at scala.compat.java8.JFunction1$mcVI$sp.apply(JFunction1$mcVI$sp.java:12)
	at scala.collection.immutable.Range.foreach(Range.scala:160)
	at dotty.tools.dotc.core.classfile.ClassfileParser.parseAttributes(ClassfileParser.scala:594)
	at dotty.tools.dotc.core.classfile.ClassfileParser.parseClass(ClassfileParser.scala:136)
	at dotty.tools.dotc.core.classfile.ClassfileParser.run(ClassfileParser.scala:57)
	at dotty.tools.dotc.core.ClassfileLoader.load(SymbolLoaders.scala:326)
	at dotty.tools.dotc.core.ClassfileLoader.doComplete(SymbolLoaders.scala:322)
	at dotty.tools.dotc.core.SymbolLoader.complete(SymbolLoaders.scala:272)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.completeFrom(SymDenotations.scala:221)
	at dotty.tools.dotc.core.SymDenotations$SymDenotation.info(SymDenotations.scala:199)
	at dotty.tools.dotc.typer.ProtoTypes$SelectionProto.qualifies$7(ProtoTypes.scala:102)
	at dotty.tools.dotc.typer.ProtoTypes$SelectionProto.isMatchedBy(ProtoTypes.scala:104)

I hit on this error compiling https://scalapb.github.io/ with Dotty.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions