//TEST:INTERPRET(filecheck=CHECK): Optional> getNone() { return none; } void main() { Optional>> val = Optional>(5); Optional>> defaultVal1 = none; Optional>> defaultVal2 = getNone(); // CHECK: 8 printf("%d\n", sizeof(val)); // CHECK: success if (defaultVal1.hasValue == defaultVal2.hasValue) { printf("success\n"); } else { printf("failure\n"); } // CHECK: value: 5 if (let x = val) { if (let y = x) { if (let z = y) { printf("value: %d\n", z); } } } }