mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 13:10:12 +03:00
33 lines
1.1 KiB
D
33 lines
1.1 KiB
D
/*
|
|
TEST_OUTPUT:
|
|
---
|
|
fail_compilation/diag8648.d(18): Error: undefined identifier `X`
|
|
fail_compilation/diag8648.d(29): Error: template `foo` is not callable using argument types `!()(Foo!(int, 1))`
|
|
fail_compilation/diag8648.d(18): Candidate is: `foo(T, n)(X!(T, n))`
|
|
fail_compilation/diag8648.d(20): Error: undefined identifier `a`
|
|
fail_compilation/diag8648.d(31): Error: template `bar` is not callable using argument types `!()(Foo!(int, 1))`
|
|
fail_compilation/diag8648.d(20): Candidate is: `bar(T)(Foo!(T, a))`
|
|
fail_compilation/diag8648.d(20): Error: undefined identifier `a`
|
|
fail_compilation/diag8648.d(32): Error: template `bar` is not callable using argument types `!()(Foo!(int, f))`
|
|
fail_compilation/diag8648.d(20): Candidate is: `bar(T)(Foo!(T, a))`
|
|
---
|
|
*/
|
|
|
|
struct Foo(T, alias a) {}
|
|
|
|
void foo(T, n)(X!(T, n) ) {} // undefined identifier 'X'
|
|
|
|
void bar(T)(Foo!(T, a) ) {} // undefined identifier 'a'
|
|
|
|
void main()
|
|
{
|
|
template f() {}
|
|
|
|
Foo!(int, 1) x;
|
|
Foo!(int, f) y;
|
|
|
|
foo(x);
|
|
|
|
bar(x); // expression '1' vs undefined Type 'a'
|
|
bar(y); // symbol 'f' vs undefined Type 'a'
|
|
}
|