ceylon / ceylon-js

DEPRECATED
Apache License 2.0
54 stars 9 forks source link

Cannot use spread operator to invoke member class #638

Closed jvasileff closed 9 years ago

jvasileff commented 9 years ago

This is the js version of https://github.com/ceylon/ceylon-compiler/issues/2335.

shared class C() {
    shared class D() {}
    value ds = { C() }*.D();
    print("done");
}

shared void run() {
    C();
}

results in the runtime error:

$ ceylon compile-js && ceylon run-js simple
Note: Created module simple/1.0.0
source/simple/run.ceylon:37: warning: declaration is never used: 'ds'
    value ds = { C() }*.D(); // Cannot find symbol symbol: method D$new$()
          ^
1 warning

/Users/jvasileff/Dropbox/Repos/jv/simple/modules/simple/1.0.0/simple-1.0.0.js:16
);},undefined,{Element$Iterable:{t:C},Absent$Iterable:{t:m$1.Nothing}}).D$C();
                                                                        ^
TypeError: Object [object Object] has no method 'D$C'
    at C (/Users/jvasileff/Dropbox/Repos/jv/simple/modules/simple/1.0.0/simple-1.0.0.js:16:153)
    at run (/Users/jvasileff/Dropbox/Repos/jv/simple/modules/simple/1.0.0/simple-1.0.0.js:51:1)
    at [eval]:1:282
    at Object.<anonymous> ([eval]-wrapper:6:22)
    at Module._compile (module.js:456:26)
    at evalScript (node.js:536:25)
    at startup (node.js:80:7)
    at node.js:906:3