Skip to content

java.lang.ClassCastException: class com.google.gwt.dev.jjs.ast.JPrimitiveType cannot be cast to class com.google.gwt.dev.jjs.ast.JArrayType #10086

@optyfr

Description

@optyfr

GWT version:
2.12.0 + 2.12.1
Browser (with version):
any
Operating System:
windows 11 and Temurin Java 17

Description

[ERROR] Unexpected internal compiler error
java.lang.ClassCastException: class com.google.gwt.dev.jjs.ast.JPrimitiveType cannot be cast to class com.google.gwt.dev.jjs.ast.JArrayType (com.google.gwt.dev.jjs.ast.JPrimitiveType and com.google.gwt.dev.jjs.ast.JArrayType are in unnamed module of loader 'app')
at com.google.gwt.dev.jjs.impl.GwtAstBuilder$AstVisitor.visit(GwtAstBuilder.java:1215)
at org.eclipse.jdt.internal.compiler.ast.ReferenceExpression.traverse(ReferenceExpression.java:1111)
at org.eclipse.jdt.internal.compiler.ast.MessageSend.traverse(MessageSend.java:1173)
at org.eclipse.jdt.internal.compiler.ast.MessageSend.traverse(MessageSend.java:1173)
at org.eclipse.jdt.internal.compiler.ast.Block.traverse(Block.java:154)
at org.eclipse.jdt.internal.compiler.ast.IfStatement.traverse(IfStatement.java:331)
at org.eclipse.jdt.internal.compiler.ast.Block.traverse(Block.java:154)
at org.eclipse.jdt.internal.compiler.ast.IfStatement.traverse(IfStatement.java:333)
at org.eclipse.jdt.internal.compiler.ast.Block.traverse(Block.java:154)
at org.eclipse.jdt.internal.compiler.ast.LambdaExpression.traverse(LambdaExpression.java:795)
at org.eclipse.jdt.internal.compiler.ast.MessageSend.traverse(MessageSend.java:1173)
at org.eclipse.jdt.internal.compiler.ast.Block.traverse(Block.java:154)
at org.eclipse.jdt.internal.compiler.ast.Initializer.traverse(Initializer.java:159)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1758)
at org.eclipse.jdt.internal.compiler.ast.QualifiedAllocationExpression.traverse(QualifiedAllocationExpression.java:693)
at org.eclipse.jdt.internal.compiler.ast.MessageSend.traverse(MessageSend.java:1173)
at org.eclipse.jdt.internal.compiler.ast.ConstructorDeclaration.traverse(ConstructorDeclaration.java:708)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.traverse(TypeDeclaration.java:1699)
at com.google.gwt.dev.jjs.impl.GwtAstBuilder.processImpl(GwtAstBuilder.java:4122)
at com.google.gwt.dev.jjs.impl.GwtAstBuilder.process(GwtAstBuilder.java:4160)
at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater$UnitProcessorImpl.process(CompilationStateBuilder.java:128)
at com.google.gwt.dev.javac.JdtCompiler$CompilerImpl.process(JdtCompiler.java:322)
at org.eclipse.jdt.internal.compiler.Compiler.processCompiledUnits(Compiler.java:575)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:475)
at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:426)
at com.google.gwt.dev.javac.JdtCompiler.doCompile(JdtCompiler.java:1021)
at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:322)
at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:532)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:464)
at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:426)
at com.google.gwt.dev.Precompile.validate(Precompile.java:145)
at com.google.gwt.dev.Compiler.compile(Compiler.java:184)
at com.google.gwt.dev.Compiler.compile(Compiler.java:143)
at com.google.gwt.dev.Compiler.compile(Compiler.java:132)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:110)
at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55)
at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50)
at com.google.gwt.dev.Compiler.main(Compiler.java:113)

Steps to reproduce

Problem started with 2.12.0, no problem with 2.11.0
No idea on what could be wrong with 2.12.0, but there is many things like this in my code :

protected static native JsArray<JavaScriptObject> getJSAJSO(JavaScriptObject jso, String name) /*-{
        return jso[name];
}-*/;

May this be related?

Known workarounds

switch back 2.11.0

Links to further discussions

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions