mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 13:10:12 +03:00
203 lines
5.1 KiB
D
203 lines
5.1 KiB
D
// PERMUTE_ARGS:
|
|
// REQUIRED_ARGS: -o-
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=6719
|
|
|
|
static assert(__traits(compiles, mixin("(const(A))[0..0]")) == false);
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=9232
|
|
|
|
struct Foo9232
|
|
{
|
|
void bar(T)() {}
|
|
void baz() {}
|
|
}
|
|
|
|
void test9232()
|
|
{
|
|
Foo9232 foo;
|
|
(foo).bar!int(); // OK <- Error: found '!' when expecting ';' following statement
|
|
((foo)).bar!int(); // OK
|
|
foo.bar!int(); // OK
|
|
(foo).baz(); // OK
|
|
}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=9401
|
|
|
|
struct S9401a
|
|
{
|
|
~this() nothrow pure @safe { }
|
|
}
|
|
|
|
struct S9401b
|
|
{
|
|
@safe ~this() pure nothrow { }
|
|
}
|
|
|
|
void test9401() nothrow pure @safe
|
|
{
|
|
S9401a s1;
|
|
S9401b s2;
|
|
}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=9649
|
|
|
|
class Outer9649
|
|
{
|
|
class Inner
|
|
{
|
|
}
|
|
}
|
|
|
|
void test9649()
|
|
{
|
|
Outer9649 outer9649;
|
|
(outer9649).new Inner();
|
|
}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=9679
|
|
|
|
void test9679(inout int = 0)
|
|
{
|
|
if ( auto n = 1) { static assert(is(typeof(n) == int)); }
|
|
if ( const n = 1) { static assert(is(typeof(n) == const int)); }
|
|
if ( immutable n = 1) { static assert(is(typeof(n) == immutable int)); }
|
|
if (shared n = 1) { static assert(is(typeof(n) == shared int)); }
|
|
if (shared const n = 1) { static assert(is(typeof(n) == shared const int)); }
|
|
if ( inout n = 1) { static assert(is(typeof(n) == inout int)); }
|
|
if (shared inout n = 1) { static assert(is(typeof(n) == shared inout int)); }
|
|
|
|
if ( const int n = 1) { static assert(is(typeof(n) == const int)); }
|
|
if ( immutable int n = 1) { static assert(is(typeof(n) == immutable int)); }
|
|
if (shared int n = 1) { static assert(is(typeof(n) == shared int)); }
|
|
if (shared const int n = 1) { static assert(is(typeof(n) == shared const int)); }
|
|
if ( inout int n = 1) { static assert(is(typeof(n) == inout int)); }
|
|
if (shared inout int n = 1) { static assert(is(typeof(n) == shared inout int)); }
|
|
|
|
if ( const(int) n = 1) { static assert(is(typeof(n) == const int)); }
|
|
if ( immutable(int) n = 1) { static assert(is(typeof(n) == immutable int)); }
|
|
if (shared (int) n = 1) { static assert(is(typeof(n) == shared int)); }
|
|
if (shared const(int) n = 1) { static assert(is(typeof(n) == shared const int)); }
|
|
if ( inout(int) n = 1) { static assert(is(typeof(n) == inout int)); }
|
|
if (shared inout(int) n = 1) { static assert(is(typeof(n) == shared inout int)); }
|
|
|
|
if (immutable(int)[] n = [1]) { static assert(is(typeof(n) == immutable(int)[])); }
|
|
}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=9901
|
|
|
|
template isGood9901(T)
|
|
{
|
|
enum isGood9901 = true;
|
|
}
|
|
void test9901()
|
|
{
|
|
string foo(R)(R data) if (isGood9901!R)
|
|
{
|
|
return "";
|
|
}
|
|
foo(1);
|
|
}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=10199
|
|
|
|
void test10199()
|
|
{
|
|
goto label;
|
|
label:
|
|
}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=12460
|
|
|
|
void f12460(T)()
|
|
{
|
|
static if (is(T == int))
|
|
{
|
|
goto end;
|
|
}
|
|
end:
|
|
}
|
|
|
|
void test12460()
|
|
{
|
|
f12460!int();
|
|
}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=11689
|
|
|
|
void test11689()
|
|
{
|
|
deprecated void foo() {}
|
|
}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=11751
|
|
|
|
static assert(is(float == typeof(0x0.1p1F)));
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=11957
|
|
|
|
extern(C++) class C11957
|
|
{
|
|
void x() {}
|
|
}
|
|
|
|
void test11957()
|
|
{
|
|
extern(C++) class D : C11957
|
|
{
|
|
override void x() {}
|
|
}
|
|
}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=13049
|
|
|
|
enum mangle13049(T) = T.mangleof;
|
|
alias FP13049 = void function(scope int); // OK
|
|
static assert(mangle13049!FP13049 == mangle13049!(void function(scope int))); // OK <- NG
|
|
|
|
/***************************************************/
|
|
// was not covered until the **12th of March 2019**
|
|
void testIfConditionWithSTCandType()
|
|
{
|
|
auto call(){return 0;}
|
|
if (const size_t i = call()) {}
|
|
}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=20791
|
|
extern(C++, "foo", )
|
|
struct S {}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=22019
|
|
void test22019()
|
|
{
|
|
final switch (1)
|
|
{
|
|
case 1,:
|
|
case 2,3,:
|
|
break;
|
|
}
|
|
}
|
|
|
|
/***************************************************/
|
|
// https://issues.dlang.org/show_bug.cgi?id=23205
|
|
|
|
void test23205()
|
|
{
|
|
mixin template tpl() { int x; }
|
|
mixin tpl!();
|
|
x = 123;
|
|
}
|