// RUN: tblgen %s | grep {\\\[1, 2, 3\\\]} | count 4 // RUN: tblgen %s | grep {\\\[4, 5, 6\\\]} | count 2 // XFAIL: vg_leak class A<list<list<int>> vals> { list<int> first = vals[0]; list<int> rest = !if(!null(!cdr(vals)), vals[0], vals[1]); } def One : A<[[1,2,3]]>; def Two : A<[[1,2,3],[4,5,6]]>; class B<list<int> v> { list<int> vals = v; } class BB<list<list<int>> vals> : B<!if(!null(!cdr(vals)), vals[0], vals[1])>; class BBB<list<list<int>> vals> : BB<vals>; def OneB : BBB<[[1,2,3]]>; def TwoB : BBB<[[1,2,3],[4,5,6]]>;