/*
TEST_OUTPUT:
---
fail_compilation/diag14818.d(34): Error: none of the overloads of `func` are callable using argument types `(string)`
fail_compilation/diag14818.d(12):        Candidate is: `diag14818.foo(int _param_0)`
fail_compilation/diag14818.d(13):                        `diag14818.bar(double _param_0)`
fail_compilation/diag14818.d(35): Error: overload alias `diag14818.X` does not match any template declaration
fail_compilation/diag14818.d(36): Error: overloadset `diag14818.M` does not match any template declaration
---
*/

void foo(int) {}
void bar(double) {}
alias func = foo;
alias func = bar;
// in here, func is a FuncAliasDeclaration;

template Foo(T) if (is(T == int)) {}
template Bar(T) if (is(T == double)) {}

alias X = Foo;
alias X = Bar;
// in here, X is an OverDeclaration

template Mix1() { alias M = Foo; }
template Mix2() { alias M = Bar; }
mixin Mix1;
mixin Mix2;
alias Y = M;
// in here, Y is an OverloadSet

void main()
{
    func("abc");
    alias x = X!string;
    alias y = Y!string;
}
