mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 21:21:48 +03:00
63 lines
1.8 KiB
D
63 lines
1.8 KiB
D
/********************************************
|
|
TEST_OUTPUT:
|
|
---
|
|
fail_compilation/traits_initSymbol.d(105): Error: struct / class type expected as argument to __traits(initSymbol) instead of `int`
|
|
fail_compilation/traits_initSymbol.d(106): Error: struct / class type expected as argument to __traits(initSymbol) instead of `S[2]`
|
|
fail_compilation/traits_initSymbol.d(107): Error: struct / class type expected as argument to __traits(initSymbol) instead of `123`
|
|
---
|
|
*/
|
|
#line 100
|
|
|
|
struct S { int i = 4; }
|
|
|
|
void test1()
|
|
{
|
|
const void[] initInt = __traits(initSymbol, int);
|
|
const void[] initArray = __traits(initSymbol, S[2]);
|
|
const void[] initValue = __traits(initSymbol, 123);
|
|
}
|
|
|
|
/********************************************
|
|
TEST_OUTPUT:
|
|
---
|
|
fail_compilation/traits_initSymbol.d(203): Error: cannot determine the address of the initializer symbol during CTFE
|
|
fail_compilation/traits_initSymbol.d(203): called from here: `(*function () pure nothrow @nogc @safe => S)()`
|
|
---
|
|
*/
|
|
#line 200
|
|
|
|
void test2()
|
|
{
|
|
enum initLen = (() => __traits(initSymbol, S))();
|
|
}
|
|
|
|
/********************************************
|
|
TEST_OUTPUT:
|
|
---
|
|
fail_compilation/traits_initSymbol.d(305): Error: struct / class type expected as argument to __traits(initSymbol) instead of `traits_initSymbol.Interface`
|
|
---
|
|
*/
|
|
#line 300
|
|
|
|
interface Interface {}
|
|
|
|
void test3()
|
|
{
|
|
const void[] initInterface = __traits(initSymbol, Interface);
|
|
}
|
|
|
|
/********************************************
|
|
TEST_OUTPUT:
|
|
---
|
|
fail_compilation/traits_initSymbol.d(404): Error: expected 1 arguments for `initSymbol` but had 0
|
|
fail_compilation/traits_initSymbol.d(405): Error: expected 1 arguments for `initSymbol` but had 2
|
|
---
|
|
*/
|
|
#line 400
|
|
|
|
|
|
void test4()
|
|
{
|
|
const void[] tmp = __traits(initSymbol);
|
|
const void[] tmo = __traits(initSymbol, Interface, S);
|
|
}
|