blob: 1d4fce19bd912db6b99c610aab4d6ccf9b4604aa [file] [log] [blame]
// RUN: %target-typecheck-verify-swift -D FOO -D BAR
// SR-3996 Incorrect type checking when using defines
// Decls in true-but-inactive blocks used to be leaked.
func f1() -> Int {
#if FOO
let val = 1
#elseif BAR
let val = 2
#endif
return val
}
func f2() -> Int {
#if FOO
#elseif BAR
let val = 3
#endif
return val // expected-error {{use of unresolved identifier 'val'}}
}
struct S1 {
#if FOO
let val = 1
#elseif BAR
let val = 2
#endif
var v: Int {
return val
}
}
struct S2 {
#if FOO
#elseif BAR
let val = 2
#endif
var v: Int {
return val // expected-error {{use of unresolved identifier 'val'}}
}
}
#if FOO
let gVal1 = 1
#elseif BAR
let gVal2 = 2
#endif
_ = gVal1
#if FOO
#elseif BAR
let inactive = 3
#endif
_ = inactive // expected-error {{use of unresolved identifier 'inactive'}}