mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 05:00:16 +03:00
78 lines
1.4 KiB
D
78 lines
1.4 KiB
D
/*
|
|
PERMUTE_ARGS:
|
|
RUN_OUTPUT:
|
|
---
|
|
shared static this()
|
|
Foo static ctor
|
|
static ctor
|
|
Bar static ctor
|
|
Bar static dtor
|
|
static dtor
|
|
Foo static dtor
|
|
shared static this()
|
|
---
|
|
*/
|
|
|
|
private import core.stdc.stdio;
|
|
|
|
class Foo
|
|
{
|
|
static this() {printf("Foo static ctor\n");}
|
|
static ~this() {printf("Foo static dtor\n");}
|
|
}
|
|
|
|
static this() {printf("static ctor\n");}
|
|
static ~this() {printf("static dtor\n");}
|
|
|
|
shared static this()
|
|
{
|
|
printf("shared static this()\n");
|
|
}
|
|
|
|
shared static ~this()
|
|
{
|
|
printf("shared static this()\n");
|
|
}
|
|
|
|
class Bar
|
|
{
|
|
static this() {printf("Bar static ctor\n");}
|
|
static ~this() {printf("Bar static dtor\n");}
|
|
}
|
|
|
|
/***********************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=6677
|
|
|
|
int global6677;
|
|
|
|
static this() nothrow pure @safe
|
|
{
|
|
int* p;
|
|
static assert(!__traits(compiles, ++p));
|
|
static assert(!__traits(compiles, ++global6677));
|
|
auto throwit = { throw new Exception("sup"); };
|
|
static assert(!__traits(compiles, throwit() ));
|
|
}
|
|
|
|
shared static this() nothrow pure @safe
|
|
{
|
|
int* p;
|
|
static assert(!__traits(compiles, ++p));
|
|
static assert(!__traits(compiles, ++global6677));
|
|
}
|
|
|
|
/***********************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=7533
|
|
struct Foo7533(int n)
|
|
{
|
|
pure static this() { }
|
|
}
|
|
|
|
alias Foo7533!5 Bar7533;
|
|
|
|
/***********************************************/
|
|
|
|
int main()
|
|
{
|
|
return 0;
|
|
}
|