https://issues.dlang.org/show_bug.cgi?id=14914
Issue ID: 14914
Summary: Inconsistent alias declaration could be detected
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: minor
Priority: P1
Component: dmd
Assignee: [email protected]
Reporter: [email protected]
It's possible to alias a method from one class instance in another one but the
declaration is actually unusable. Example:
---
class Foo
{
void something(size_t param){}
}
class Bar
{
private Foo foo;
this(){foo = new Foo;}
alias somethingelse0 = foo.something;
//alias somethingelse1 = typeof(foo).something;// equivalent
}
void main(string[] args)
{
auto bar = new Bar;
bar.somethingelse0(0);
}
---
'Bar.somethingelse0' or 'Bar.somethingelse1' are indeed methods but they are
not callable.
To be more clear, the problem is that the alias declaration is legal but it
cannot be used.
--