mirror of
https://github.com/dlang/dmd.git
synced 2025-04-26 21:21:48 +03:00
291 lines
3.5 KiB
D
291 lines
3.5 KiB
D
=== ${RESULTS_DIR}/compilable/testheader2i.di
|
|
// D import file generated from 'compilable/extra-files/header2.d'
|
|
class C
|
|
{
|
|
}
|
|
void foo(const C c, const(char)[] s, const int* q, const(int*) p)
|
|
{
|
|
}
|
|
void bar(in void* p)
|
|
{
|
|
}
|
|
void f(void function() f2);
|
|
class C2;
|
|
void foo2(const C2 c);
|
|
struct Foo3
|
|
{
|
|
int k;
|
|
@nogc @live @trusted @disable ~this()
|
|
{
|
|
k = 1;
|
|
}
|
|
this(this)
|
|
{
|
|
k = 2;
|
|
}
|
|
}
|
|
class C3
|
|
{
|
|
@property int get()
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
T foo3(T)()
|
|
{
|
|
}
|
|
struct S4A(T)
|
|
{
|
|
T x;
|
|
@safe ~this()
|
|
{
|
|
}
|
|
}
|
|
struct S4B(T) if (1)
|
|
{
|
|
T x;
|
|
}
|
|
union U4A(T)
|
|
{
|
|
T x;
|
|
}
|
|
union U4B(T) if (2 * 4 == 8)
|
|
{
|
|
T x;
|
|
}
|
|
class C4A(T)
|
|
{
|
|
T x;
|
|
}
|
|
class C4B(T) if (true)
|
|
{
|
|
T x;
|
|
}
|
|
class C4C(T) if (!false) : C4A!int
|
|
{
|
|
T x;
|
|
}
|
|
class C4D(T) if (!false) : C4B!long, C4C!(int[])
|
|
{
|
|
T x;
|
|
}
|
|
interface I4(T) if ((int[1]).length == 1)
|
|
{
|
|
T x;
|
|
}
|
|
template MyClass4(T) if (is(typeof(T.subtype)))
|
|
{
|
|
alias HelperSymbol = T.subtype;
|
|
class MyClass4
|
|
{
|
|
}
|
|
}
|
|
enum isInt(T) = is(T == int);
|
|
enum bool isString(T) = is(T == string);
|
|
static immutable typeName(T) = T.stringof;
|
|
int storageFor(T) = 0;
|
|
enum int templateVariableFoo(T) = T.stringof.length;
|
|
template templateVariableBar(T) if (is(T == int))
|
|
{
|
|
enum int templateVariableBar = T.stringof.length;
|
|
}
|
|
auto flit = 3 / 2.0;
|
|
void foo11217()(const int[] arr)
|
|
{
|
|
}
|
|
void foo11217()(immutable int[] arr)
|
|
{
|
|
}
|
|
void foo11217()(ref int[] arr)
|
|
{
|
|
}
|
|
void foo11217()(lazy int[] arr)
|
|
{
|
|
}
|
|
void foo11217()(auto ref int[] arr)
|
|
{
|
|
}
|
|
void foo11217()(scope int[] arr)
|
|
{
|
|
}
|
|
void foo11217()(in int[] arr)
|
|
{
|
|
}
|
|
void foo11217()(inout int[] arr)
|
|
{
|
|
}
|
|
void test13275()
|
|
{
|
|
if (auto n = 1)
|
|
{
|
|
}
|
|
if (const n = 1)
|
|
{
|
|
}
|
|
if (immutable n = 1)
|
|
{
|
|
}
|
|
if (shared n = 1)
|
|
{
|
|
}
|
|
if (const shared n = 1)
|
|
{
|
|
}
|
|
if (int n = 1)
|
|
{
|
|
}
|
|
if (const int n = 1)
|
|
{
|
|
}
|
|
if (immutable int n = 1)
|
|
{
|
|
}
|
|
if (shared int n = 1)
|
|
{
|
|
}
|
|
if (const shared int n = 1)
|
|
{
|
|
}
|
|
if (const(int) n = 1)
|
|
{
|
|
}
|
|
if (immutable(int) n = 1)
|
|
{
|
|
}
|
|
if (shared(int) n = 1)
|
|
{
|
|
}
|
|
if (shared const(int) n = 1)
|
|
{
|
|
}
|
|
foreach (e; [1, 2])
|
|
{
|
|
}
|
|
foreach (const e; [1, 2])
|
|
{
|
|
}
|
|
foreach (immutable e; [1, 2])
|
|
{
|
|
}
|
|
foreach (shared e; [1, 2])
|
|
{
|
|
}
|
|
foreach (const shared e; [1, 2])
|
|
{
|
|
}
|
|
foreach (int e; [1, 2])
|
|
{
|
|
}
|
|
foreach (const int e; [1, 2])
|
|
{
|
|
}
|
|
foreach (immutable int e; [1, 2])
|
|
{
|
|
}
|
|
foreach (shared int e; [1, 2])
|
|
{
|
|
}
|
|
foreach (const shared int e; [1, 2])
|
|
{
|
|
}
|
|
foreach (int e; [1, 2])
|
|
{
|
|
}
|
|
foreach (const(int) e; [1, 2])
|
|
{
|
|
}
|
|
foreach (immutable(int) e; [1, 2])
|
|
{
|
|
}
|
|
foreach (shared(int) e; [1, 2])
|
|
{
|
|
}
|
|
foreach (shared const(int) e; [1, 2])
|
|
{
|
|
}
|
|
}
|
|
align (1) struct S9766
|
|
{
|
|
align {}
|
|
align (true ? 2 : 3)
|
|
{
|
|
int var1;
|
|
align int var2;
|
|
}
|
|
}
|
|
align (2) struct S12200_1
|
|
{
|
|
align {}
|
|
}
|
|
align (2) struct S12200_2
|
|
{
|
|
align (1) {}
|
|
}
|
|
pure nothrow @trusted inout(T)[] overlap(T)(inout(T)[] r1, inout(T)[] r2)
|
|
{
|
|
alias U = inout(T);
|
|
static nothrow U* max(U* a, U* b)
|
|
{
|
|
return a > b ? a : b;
|
|
}
|
|
static nothrow U* min(U* a, U* b)
|
|
{
|
|
return a < b ? a : b;
|
|
}
|
|
auto b = max(r1.ptr, r2.ptr);
|
|
auto e = min(r1.ptr + r1.length, r2.ptr + r2.length);
|
|
return b < e ? b[0..e - b] : null;
|
|
}
|
|
void gun()()
|
|
{
|
|
int[] res;
|
|
while (auto va = fun())
|
|
{
|
|
}
|
|
while (true)
|
|
if (auto va = fun())
|
|
{
|
|
}
|
|
else
|
|
break;
|
|
}
|
|
pragma (inline, true)int fun(int a, int b)
|
|
{
|
|
return 3;
|
|
}
|
|
void leFoo()()
|
|
{
|
|
sign = a == 2 ? false : (y < 0) ^ sign;
|
|
sign = a == 2 ? false : sign ^ (y < 0);
|
|
sign = 2 + 3 | 7 + 5;
|
|
}
|
|
interface LeInterface
|
|
{
|
|
}
|
|
class LeClass
|
|
{
|
|
this()
|
|
{
|
|
auto foo = new class LeInterface
|
|
{
|
|
}
|
|
;
|
|
}
|
|
}
|
|
const levar = new class LeClass, LeInterface
|
|
{
|
|
}
|
|
;
|
|
class CC
|
|
{
|
|
@safe void fun()()
|
|
{
|
|
() pure @trusted
|
|
{
|
|
}
|
|
();
|
|
}
|
|
}
|
|
private struct Export
|
|
{
|
|
}
|