1/* { dg-do run } */ 2 3type Struct = struct { int i; string j; }; 4 5fun foo2 = (any a) void: 6 { 7 if (a isa int<32>) 8 print "an int32"; 9 else if (a isa uint<7>) 10 print "an uint7"; 11 else if (a isa uint<64>[]) 12 print "an uint64 array"; 13 else 14 print "unknown"; 15 print "\n"; 16 } 17 18/* { dg-command { foo2 (10) } } */ 19/* { dg-output "an int32" } */ 20 21/* { dg-command { foo2 (666) } } */ 22/* { dg-output "\nan int32" } */ 23 24/* { dg-command { foo2 (10 as uint<7>) } } */ 25/* { dg-output "\nan uint7" } */ 26 27/* { dg-command { foo2 ([1UL, 2UL]) } } */ 28/* { dg-output "\nan uint64 array" } */ 29 30/* { dg-command { foo2 (Struct {i=10, j="foo"}) } } */ 31/* { dg-output "\nunknown" } */ 32