eclipse-archived/ceylon

`see` annotation on triple nested object singleton causes ModelError on test run

Opened this issue · 0 comments

code sample:

import ceylon.test {
    test,
    assertEquals
}
shared object a{
    shared object b{
        shared object c{}
    }
}
see(`value a.b.c`)
test
shared void myTest(){
    assertEquals(1, 1);
}

ceylon test fails with stacktrace:

com.redhat.ceylon.compiler.java.runtime.metamodel.ModelError: While reflectively instantiating class ceylon.language.SeeAnnotation on element function test.sample16::myTest
        at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.newModelError(Metamodel.java:1934)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.addAnnotation(Metamodel.java:1160)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.addAnnotation(Metamodel.java:1143)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.annotations(Metamodel.java:1238)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.annotations(Metamodel.java:1224)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.decl.NestableDeclarationImpl.annotations(NestableDeclarationImpl.java:98)
        at ceylon.test.engine.internal.findAnnotations_.findAnnotations(utils.ceylon:32)
        at ceylon.test.engine.DefaultTestExecutor.evaluateTestConditions(DefaultTestExecutor.ceylon:197)
        at ceylon.test.engine.DefaultTestExecutor.execute(DefaultTestExecutor.ceylon:46)
        at ceylon.test.engine.DefaultTestRunner$9$1$1$1.$call$(DefaultTestRunner.ceylon:99)
        at ceylon.test.engine.spi.TaskExecutor.executionLoop(TestExecutionContext.ceylon:127)
        at ceylon.test.engine.spi.TaskExecutor.execute$canonical$(TestExecutionContext.ceylon:121)
        at ceylon.test.engine.spi.TaskExecutor.execute(TestExecutionContext.ceylon:110)
        at ceylon.test.engine.spi.TestExecutionContext.execute$canonical$(TestExecutionContext.ceylon:71)
        at ceylon.test.engine.spi.TestExecutionContext.execute(TestExecutionContext.ceylon:70)
        at ceylon.test.engine.DefaultTestRunner.runInternal$priv$(DefaultTestRunner.ceylon:94)
        at ceylon.test.engine.DefaultTestRunner.run(DefaultTestRunner.ceylon:58)
        at ceylon.test.engine.internal.Runner.runTests$priv$(Runner.ceylon:104)
        at ceylon.test.engine.internal.Runner.run(Runner.ceylon:36)
        at ceylon.test.runTestTool_.runTestTool(tool.ceylon:8)
        at ceylon.test.runTestTool_.main(tool.ceylon)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at ceylon.modules.api.runtime.SecurityActions.invokeRunInternal(SecurityActions.java:57)
        at ceylon.modules.api.runtime.SecurityActions.invokeRun(SecurityActions.java:48)
        at ceylon.modules.api.runtime.AbstractRuntime.invokeRun(AbstractRuntime.java:68)
        at ceylon.modules.api.runtime.AbstractRuntime.execute(AbstractRuntime.java:105)
        at ceylon.modules.api.runtime.AbstractRuntime.execute(AbstractRuntime.java:101)
        at ceylon.modules.Main.execute(Main.java:69)
        at ceylon.modules.Main.main(Main.java:42)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.jboss.modules.Module.run(Module.java:308)
        at org.jboss.modules.Main.main(Main.java:487)
        at ceylon.modules.bootstrap.CeylonRunTool.run(CeylonRunTool.java:367)
        at ceylon.modules.bootstrap.CeylonTestTool.run(CeylonTestTool.java:127)
        at com.redhat.ceylon.common.tools.CeylonTool.run(CeylonTool.java:547)
        at com.redhat.ceylon.common.tools.CeylonTool.execute(CeylonTool.java:423)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.redhat.ceylon.launcher.Launcher.runInJava7Checked(Launcher.java:108)
        at com.redhat.ceylon.launcher.Launcher.run(Launcher.java:38)
        at com.redhat.ceylon.launcher.Launcher.run(Launcher.java:31)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at com.redhat.ceylon.launcher.Bootstrap.runVersion(Bootstrap.java:162)
        at com.redhat.ceylon.launcher.Bootstrap.runInternal(Bootstrap.java:117)
        at com.redhat.ceylon.launcher.Bootstrap.run(Bootstrap.java:93)
        at com.redhat.ceylon.launcher.Bootstrap.main(Bootstrap.java:85)
Caused by: java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.addAnnotation(Metamodel.java:1153)
        ... 55 more
Caused by: com.redhat.ceylon.compiler.java.runtime.metamodel.ModelError: Could not find type: b in a
        at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.newModelError(Metamodel.java:1934)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.newModelError(Metamodel.java:1929)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.DeclarationParser.metamodelNotFound(DeclarationParser.java:316)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.DeclarationParser.makeClassOrInterface(DeclarationParser.java:349)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.DeclarationParser.class_(DeclarationParser.java:273)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.DeclarationParser.type(DeclarationParser.java:246)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.DeclarationParser.declaration(DeclarationParser.java:185)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.DeclarationParser.tpOrMember(DeclarationParser.java:262)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.DeclarationParser.type(DeclarationParser.java:254)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.DeclarationParser.declaration(DeclarationParser.java:185)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.DeclarationParser.package_(DeclarationParser.java:177)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.DeclarationParser.module(DeclarationParser.java:110)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.DeclarationParser.ref(DeclarationParser.java:76)
        at com.redhat.ceylon.compiler.java.runtime.metamodel.Metamodel.parseMetamodelReferences(Metamodel.java:1416)
        at ceylon.language.SeeAnnotation.<init>(annotations.ceylon:306)