Skip to content
This repository has been archived by the owner on Apr 13, 2023. It is now read-only.

Codegen Error when trying to access inner class #6157

Closed
bjansen opened this issue Mar 31, 2016 · 1 comment
Closed

Codegen Error when trying to access inner class #6157

bjansen opened this issue Mar 31, 2016 · 1 comment

Comments

@bjansen
Copy link
Contributor

bjansen commented Mar 31, 2016

This code results in a compilation error:

interface Int<Foo> {
    shared class Inner() {
    }
}

class Cls() satisfies Int<String> {
}

void rrun(Cls.Inner inner) {
}
[ceylon-compile] /Users/bastien/Dev/ceylon/ceylon-ide-common/source/com/redhat/ceylon/ide/common/run.ceylon:17: error: cannot find symbol
[ceylon-compile] void rrun(Cls.Inner inner) {
[ceylon-compile]                            ^
[ceylon-compile]   symbol:   class Inner
[ceylon-compile]   location: class Cls
[ceylon-compile] Note: Created module com.redhat.ceylon.ide.common/1.2.3
[ceylon-compile] ceylon compile: Fatal error: The compiler exited abnormally (4) due to a bug in
[ceylon-compile] the compiler.
[ceylon-compile] Please report it:
[ceylon-compile]  https://github.com/ceylon/ceylon-compiler/issues/new
[ceylon-compile] Please include:
[ceylon-compile]
[ceylon-compile] * the stacktrace printed below
[ceylon-compile] * a description of what you were trying to compile.
[ceylon-compile]
[ceylon-compile] Thank you!
[ceylon-compile] com.redhat.ceylon.compiler.CompilerBugException: Codegen Error
[ceylon-compile]    at com.redhat.ceylon.compiler.CeylonCompileTool.handleExitCode(CeylonCompileTool.java:606)
[ceylon-compile]    at com.redhat.ceylon.compiler.CeylonCompileTool.run(CeylonCompileTool.java:588)
[ceylon-compile]    at com.redhat.ceylon.common.tools.CeylonTool.run(CeylonTool.java:520)
[ceylon-compile]    at com.redhat.ceylon.common.tools.CeylonTool.execute(CeylonTool.java:405)
[ceylon-compile]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ceylon-compile]    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ceylon-compile]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ceylon-compile]    at java.lang.reflect.Method.invoke(Method.java:497)
[ceylon-compile]    at com.redhat.ceylon.launcher.Launcher.runInJava7Checked(Launcher.java:115)
[ceylon-compile]    at com.redhat.ceylon.launcher.Launcher.run(Launcher.java:41)
[ceylon-compile]    at com.redhat.ceylon.launcher.Launcher.run(Launcher.java:34)
[ceylon-compile]    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ceylon-compile]    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ceylon-compile]    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ceylon-compile]    at java.lang.reflect.Method.invoke(Method.java:497)
[ceylon-compile]    at com.redhat.ceylon.launcher.Bootstrap.runInternal(Bootstrap.java:139)
[ceylon-compile]    at com.redhat.ceylon.launcher.Bootstrap.run(Bootstrap.java:93)
[ceylon-compile]    at com.redhat.ceylon.launcher.Bootstrap.main(Bootstrap.java:85)
[ceylon-compile] Caused by: java.lang.RuntimeException: Error generating bytecode for /Users/bastien/Dev/ceylon/ceylon-ide-common/source/com/redhat/ceylon/ide/common/run.ceylon
[ceylon-compile]    at com.redhat.ceylon.compiler.java.tools.LanguageCompiler.genCodeUnlessError(LanguageCompiler.java:821)
[ceylon-compile]    at com.redhat.ceylon.compiler.java.tools.LanguageCompiler.genCode(LanguageCompiler.java:758)
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1575)
[ceylon-compile]    at com.redhat.ceylon.compiler.java.tools.LanguageCompiler.generate(LanguageCompiler.java:872)
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.main.JavaCompiler.generate(JavaCompiler.java:1539)
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.main.JavaCompiler.compile2(JavaCompiler.java:904)
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:862)
[ceylon-compile]    at com.redhat.ceylon.compiler.java.tools.LanguageCompiler.compile(LanguageCompiler.java:259)
[ceylon-compile]    at com.redhat.ceylon.compiler.java.launcher.Main.compile(Main.java:650)
[ceylon-compile]    at com.redhat.ceylon.compiler.java.launcher.Main.compile(Main.java:562)
[ceylon-compile]    at com.redhat.ceylon.compiler.java.launcher.Main.compile(Main.java:554)
[ceylon-compile]    at com.redhat.ceylon.compiler.java.launcher.Main.compile(Main.java:543)
[ceylon-compile]    at com.redhat.ceylon.compiler.CeylonCompileTool.run(CeylonCompileTool.java:587)
[ceylon-compile]    ... 16 more
[ceylon-compile] Caused by: java.lang.AssertionError: typecode ERROR
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.jvm.Code.typecode(Code.java:248)
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.jvm.Code.width(Code.java:272)
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.jvm.Code.width(Code.java:280)
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.jvm.Gen.genMethod(Gen.java:1022)
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.jvm.Gen.visitMethodDef(Gen.java:996)
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.tree.JCTree$JCMethodDecl.accept(JCTree.java:777)
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.jvm.Gen.genDef(Gen.java:739)
[ceylon-compile]    at com.redhat.ceylon.langtools.tools.javac.jvm.Gen.genClass(Gen.java:2461)
[ceylon-compile]    at com.redhat.ceylon.compiler.java.tools.LanguageCompiler.genCodeUnlessError(LanguageCompiler.java:792)
[ceylon-compile]    ... 28 more

The error doesn't appear if the interface has no type parameters.

@bjansen bjansen added this to the 1.2.3 milestone Mar 31, 2016
tombentley added a commit that referenced this issue Mar 31, 2016
@bjansen
Copy link
Contributor Author

bjansen commented Mar 31, 2016

Thanks!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

1 participant