| // REQUIRED_ARGS: -o- |
| |
| deprecated class Dep { } |
| deprecated immutable int depVar = 10; |
| |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/diag14875.d(16): Deprecation: class `diag14875.Dep` is deprecated |
| 1: Dep |
| 2: Dep |
| 3: Dep |
| --- |
| */ |
| |
| alias X = Foo!Dep; // deprecation |
| |
| template Foo(T) |
| { |
| pragma(msg, "1: ", T); // no message |
| enum Foo = cast(void*)Bar!T; |
| } |
| template Bar(T) |
| { |
| pragma(msg, "2: ", T); // no message |
| enum Bar = &Baz!T; |
| } |
| template Baz(T) |
| { |
| pragma(msg, "3: ", T); // no message |
| immutable Baz = 1234; |
| } |
| |
| // --- |
| |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/diag14875.d(52): Deprecation: class `diag14875.Dep` is deprecated |
| fail_compilation/diag14875.d(56): Deprecation: variable `diag14875.depVar` is deprecated |
| fail_compilation/diag14875.d(52): instantiated from here: `Voo!(Dep)` |
| 4: Dep |
| fail_compilation/diag14875.d(63): Deprecation: variable `diag14875.depVar` is deprecated |
| fail_compilation/diag14875.d(59): instantiated from here: `Var!(Dep)` |
| fail_compilation/diag14875.d(52): instantiated from here: `Voo!(Dep)` |
| fail_compilation/diag14875.d(64): Deprecation: template `diag14875.Vaz(T)` is deprecated |
| fail_compilation/diag14875.d(59): instantiated from here: `Var!(Dep)` |
| fail_compilation/diag14875.d(52): instantiated from here: `Voo!(Dep)` |
| --- |
| */ |
| |
| alias Y = Voo!Dep; // deprecation |
| |
| template Voo(T) |
| { |
| enum n = depVar; // deprecation |
| struct A { alias B = T; } // no message |
| pragma(msg, "4: ", A.B); // B is not deprecated |
| enum Voo = cast(void*)Var!T; |
| } |
| template Var(T) |
| { |
| enum n = depVar; // deprecation |
| enum Var = &Vaz!T; // deprecation |
| } |
| deprecated template Vaz(T) |
| { |
| enum n = depVar; // no message |
| immutable Vaz = 1234; |
| } |
| |
| /* |
| TEST_OUTPUT: |
| --- |
| fail_compilation/diag14875.d(80): Error: static assert: `0` is false |
| --- |
| */ |
| void main() |
| { |
| static assert(0); |
| } |