diff options
Diffstat (limited to 'gcc/testsuite/gdc.test/fail_compilation/ice14929.d')
-rw-r--r-- | gcc/testsuite/gdc.test/fail_compilation/ice14929.d | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/gcc/testsuite/gdc.test/fail_compilation/ice14929.d b/gcc/testsuite/gdc.test/fail_compilation/ice14929.d deleted file mode 100644 index 01edc0d5e2b..00000000000 --- a/gcc/testsuite/gdc.test/fail_compilation/ice14929.d +++ /dev/null @@ -1,96 +0,0 @@ -/* -TEST_OUTPUT: ---- -fail_compilation/ice14929.d(45): Error: cast(Node)(*this.current).items[this.index] is not an lvalue -fail_compilation/ice14929.d(88): Error: template instance ice14929.HashMap!(ulong, int).HashMap.opBinaryRight!"in" error instantiating -fail_compilation/ice14929.d(92): instantiated from here: HashmapComponentStorage!int -fail_compilation/ice14929.d(92): Error: template instance ice14929.isComponentStorage!(HashmapComponentStorage!int, int) error instantiating -fail_compilation/ice14929.d(92): while evaluating: `static assert(isComponentStorage!(HashmapComponentStorage!int, int))` ---- -*/ - -struct HashMap(K, V) -{ - V* opBinaryRight(string op)(K key) const if (op == "in") - { - size_t index; - foreach (ref node; buckets[index].range) - { - return &(node.value); - } - return null; - } - - struct Node - { - K key; - V value; - } - - alias Bucket = UnrolledList!(Node); - Bucket[] buckets; -} - -struct UnrolledList(T) -{ - Range range() const pure - { - return Range(_front); - } - - static struct Range - { - ref T front() const @property - { - return cast(T) current.items[index]; - } - void popFront() pure - { - } - bool empty() const pure @property - { - return true; - } - const(Node)* current; - size_t index; - } - - Node* _front; - - static struct Node - { - ContainerStorageType!T[10] items; - } -} - -template ContainerStorageType(T) -{ - alias ContainerStorageType = T; -} - -template isComponentStorage(CS, C) -{ - enum bool isComponentStorage = is(typeof( - (inout int = 0) - { - CS cs = CS.init; - ulong eid; - cs.add(eid, c); - })); -} - -struct HashmapComponentStorage(ComponentType) -{ - private HashMap!(ulong, ComponentType) components; - - void add(ulong eid, ComponentType component) - { - assert(eid !in components); - } -} - -static assert(isComponentStorage!(HashmapComponentStorage!int, int)); - -void main() -{ -} |