aboutsummaryrefslogtreecommitdiff
path: root/compiler/tests/verifier/def_type_typeparam.good
blob: 0bed6044960e55ca9926dee3d9efeaa2047a1f31 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

namespace A {

    typedef here[T] = (A[T]^ next, T^ stuff, int item);

    int something(A[T]^ entry)
    {
        T^ thing = entry^.stuff;
        A[T]^ nextentry = entry^.next;
        int item1 = nextentry^.item;

        typedef RingBuffer = (count size, A[T]^ first);
        var RingBuffer rb = (123, entry);
        rb.first = entry;
        int item2 = rb.first^.item;

        typedef Generic[U] = (int x, A[T]^ a, T^ b, Generic[U]^ c, U^ d);
        var Generic[T] g;
        g.x = 123;
        g.a = entry;
        g.b = thing;
        g.c = @g;
        g.d = thing;
        int item3 = g.a^.item;
        return g.c^.x;
    }

}