File: can_import_options.swift

package info (click to toggle)
swiftlang 6.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,519,992 kB
  • sloc: cpp: 9,107,863; ansic: 2,040,022; asm: 1,135,751; python: 296,500; objc: 82,456; f90: 60,502; lisp: 34,951; pascal: 19,946; sh: 18,133; perl: 7,482; ml: 4,937; javascript: 4,117; makefile: 3,840; awk: 3,535; xml: 914; fortran: 619; cs: 573; ruby: 573
file content (145 lines) | stat: -rw-r--r-- 6,416 bytes parent folder | download
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
// RUN: %empty-directory(%t)
// RUN: %target-typecheck-verify-swift -disable-implicit-concurrency-module-import \
// RUN:   -disable-implicit-string-processing-module-import \
// RUN:   -module-can-import Foo -module-can-import-version Bar 113.330.1.2 0.0 \
// RUN:   -module-can-import-version Baz 113.330.1.2 113.330.1.2

func canImport() {
#if canImport(Foo)
  let basicCheck = 1 // expected-warning {{initialization of immutable value 'basicCheck' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Foo, _version: 1)
  // No actual Foo to be imported since it is not versioned.
  let versionCheck = 1
#endif
}

func canImportVersioned() {
#if canImport(Bar, _version: 0)
  let majorZero = 1 // expected-warning {{initialization of immutable value 'majorZero' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Bar, _version: 112)
  let majorSmaller = 1 // expected-warning {{initialization of immutable value 'majorSmaller' was never used; consider replacing with assignment to '_' or removing it}}
#endif
  
#if canImport(Bar, _version: 113)
  let majorEqual = 1 // expected-warning {{initialization of immutable value 'majorEqual' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Bar, _version: 114)
  let majorLarger = 1
#endif
  
#if canImport(Bar, _version: 113.329)
  let minorSmaller = 1 // expected-warning {{initialization of immutable value 'minorSmaller' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Bar, _version: 113.330)
  let minorEqual = 1 // expected-warning {{initialization of immutable value 'minorEqual' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Bar, _version: 113.331)
  let minorLarger = 1
#endif
  
#if canImport(Bar, _version: 113.330.0)
  let patchSmaller = 1 // expected-warning {{initialization of immutable value 'patchSmaller' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Bar, _version: 113.330.1)
  let patchEqual = 1 // expected-warning {{initialization of immutable value 'patchEqual' was never used; consider replacing with assignment to '_' or removing it}}
#endif
  
#if canImport(Bar, _version: 113.330.2)
  let patchLarger = 1
#endif

#if canImport(Bar, _version: 113.330.1.1)
  let buildSmaller = 1 // expected-warning {{initialization of immutable value 'buildSmaller' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Bar, _version: 113.330.1.2)
  let buildEqual = 1 // expected-warning {{initialization of immutable value 'buildEqual' was never used; consider replacing with assignment to '_' or removing it}}
#endif
  
#if canImport(Bar, _version: 113.330.1.3)
  let buildLarger = 1
#endif
  
#if canImport(Bar, _version: 113.330.1.2.0) // expected-warning {{trailing components of version '113.330.1.2' are ignored}}
  let extraComponent = 1 // expected-warning {{initialization of immutable value 'extraComponent' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Bar, _underlyingVersion: 113.33)
  // Bar is a Swift module with no underlying clang module.
  let underlyingMinorSmaller = 1
#endif

#if canImport(Bar)
  let noVersion = 1 // expected-warning {{initialization of immutable value 'noVersion' was never used; consider replacing with assignment to '_' or removing it}}
#endif
}

func canImportUnderlyingVersion() {
#if canImport(Baz, _underlyingVersion: 0)
  let majorZero = 1 // expected-warning {{initialization of immutable value 'majorZero' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Baz, _underlyingVersion: 112)
  let majorSmaller = 1 // expected-warning {{initialization of immutable value 'majorSmaller' was never used; consider replacing with assignment to '_' or removing it}}
#endif
  
#if canImport(Baz, _underlyingVersion: 113)
  let majorEqual = 1 // expected-warning {{initialization of immutable value 'majorEqual' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Baz, _underlyingVersion: 114)
  let majorLarger = 1
#endif
  
#if canImport(Baz, _underlyingVersion: 113.329)
  let minorSmaller = 1 // expected-warning {{initialization of immutable value 'minorSmaller' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Baz, _underlyingVersion: 113.330)
  let minorEqual = 1 // expected-warning {{initialization of immutable value 'minorEqual' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Baz, _underlyingVersion: 113.331)
  let minorLarger = 1
#endif
  
#if canImport(Baz, _underlyingVersion: 113.330.0)
  let patchSmaller = 1 // expected-warning {{initialization of immutable value 'patchSmaller' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Baz, _underlyingVersion: 113.330.1)
  let patchEqual = 1 // expected-warning {{initialization of immutable value 'patchEqual' was never used; consider replacing with assignment to '_' or removing it}}
#endif
  
#if canImport(Baz, _underlyingVersion: 113.330.2)
  let patchLarger = 1
#endif

#if canImport(Baz, _underlyingVersion: 113.330.1.1)
  let buildSmaller = 1 // expected-warning {{initialization of immutable value 'buildSmaller' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Baz, _underlyingVersion: 113.330.1.2)
  let buildEqual = 1 // expected-warning {{initialization of immutable value 'buildEqual' was never used; consider replacing with assignment to '_' or removing it}}
#endif
  
#if canImport(Baz, _underlyingVersion: 113.330.1.3)
  let buildLarger = 1
#endif
  
#if canImport(Baz, _underlyingVersion: 113.330.1.2.0) // expected-warning {{trailing components of version '113.330.1.2' are ignored}}
  let extraComponent = 1 // expected-warning {{initialization of immutable value 'extraComponent' was never used; consider replacing with assignment to '_' or removing it}}
#endif

#if canImport(Baz, _version: 113.33)
  let version = 1 // expected-warning {{initialization of immutable value 'version' was never used; consider replacing with assignment to '_' or removing it}}
#endif
}