1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81
|
// RUN: %target-typecheck-verify-swift
#if _compiler_version("999.*.999.999.999")
let w = 1
#else
// This shouldn't emit any diagnostics.
asdf asdf asdf asdf
#endif
#if _compiler_version("600.*.10.10")
#if os(iOS)
let z = 1
#else
let z = 1
#endif
#else
// This shouldn't emit any diagnostics.
asdf asdf asdf asdf
#if os(iOS)
// This shouldn't emit any diagnostics.
asdf asdf asdf asdf
#else
// This shouldn't emit any diagnostics.
asdf asdf asdf asdf
#endif
// This shouldn't emit any diagnostics.
asdf asdf asdf asdf
#endif
#if !_compiler_version("777.*.7")
// This shouldn't emit any diagnostics.
%#^*&
#endif
#if _compiler_version("700a.*.10") // expected-error {{version component contains non-numeric characters}}
#endif
#if _compiler_version("...") // expected-error {{found empty version component}}
// expected-error@-1 {{found empty version component}}
// expected-error@-2 {{found empty version component}}
#endif
#if _compiler_version("") // expected-error {{version requirement is empty}}
let y = 1
#else
let thisWillStillParseBecauseConfigIsError = 1
#endif
#if _compiler_version("700.0.100") // expected-warning {{the second version component is not used for comparison in legacy compiler versions}} {{28-29=*}}
#endif
#if _compiler_version("5.7.100") // expected-warning {{the second version component is not used for comparison in legacy compiler versions; are you trying to encode a new Swift compiler version for compatibility with legacy compilers?}} {{24-27=5007.*}}
#endif
#if _compiler_version("700.*.1.1.1.1") // expected-error {{version must not have more than five components}}
#endif
#if _compiler_version("9223372.*.1.1.1") // expected-error {{version component out of range: must be in [0, 9223371]}}
#endif
#if _compiler_version("700.*.1000.1.1") // expected-error {{version component out of range: must be in [0, 999]}}
#endif
#if _compiler_version("700.*.1.1000.1") // expected-error {{version component out of range: must be in [0, 999]}}
#endif
#if _compiler_version("700.*.1.1.1000") // expected-error {{version component out of range: must be in [0, 999]}}
#endif
// New style _compiler_version()
#if _compiler_version(<4.0)
// This shouldn't emit any diagnostics.
asdf asdf asdf asdf
#endif
#if !_compiler_version(>=4.3.2.1.0)
// This shouldn't emit any diagnostics.
asdf asdf asdf asdf
#endif
|