Bug 8265 – UFCS fails when called across modules

Status
RESOLVED
Resolution
DUPLICATE
Severity
normal
Priority
P2
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2012-06-19T05:26:00Z
Last change time
2014-08-26T08:10:28Z
Keywords
rejects-valid
Assigned to
nobody
Creator
tommitissari

Comments

Comment #0 by tommitissari — 2012-06-19T05:26:34Z
// File: main.d module main; import test; struct MyStruct { int _value; int memberGetValue() { return _value; } } int nonMemberGetValue(MyStruct ms) { return ms._value; } int main(string[] argv) { static assert(test.memberTest(MyStruct(42))); // #0: OK static assert(MyStruct(42).nonMemberGetValue() == 42); // #1: OK static assert(test.nonMemberTest(MyStruct(42))); // #2 return 0; } //... // File: test.d module test; bool memberTest(T)(T t) { return t.memberGetValue() == 42; } bool nonMemberTest(T)(T t) { return t.nonMemberGetValue() == 42; // #3 } // #2: Error: template instance test.nonMemberTest!(MyStruct) // error instantiating // #3: Error: undefined identifier 'nonMemberGetValue'
Comment #1 by k.hara.pg — 2014-08-26T08:10:28Z
*** This issue has been marked as a duplicate of issue 7802 ***