Skip to content

Commit afca797

Browse files
committed
Builtin types are always be printed with Builtin prefix
ASTPrinter now ignore the Options.FullyQualifiedTypesIfAmbiguous value if the containing module is the builtin one.
1 parent f7b3e4b commit afca797

File tree

6 files changed

+62
-52
lines changed

6 files changed

+62
-52
lines changed

lib/AST/ASTPrinter.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3513,9 +3513,6 @@ class TypePrinter : public TypeVisitor<TypePrinter> {
35133513
if (Options.FullyQualifiedTypes)
35143514
return true;
35153515

3516-
if (!Options.FullyQualifiedTypesIfAmbiguous)
3517-
return false;
3518-
35193516
Decl *D;
35203517
if (auto *TAT = dyn_cast<TypeAliasType>(T))
35213518
D = TAT->getDecl();
@@ -3528,6 +3525,11 @@ class TypePrinter : public TypeVisitor<TypePrinter> {
35283525
return true;
35293526

35303527
ModuleDecl *M = D->getDeclContext()->getParentModule();
3528+
if (M->isBuiltinModule())
3529+
return true;
3530+
3531+
if (!Options.FullyQualifiedTypesIfAmbiguous)
3532+
return false;
35313533

35323534
if (Options.CurrentModule && M == Options.CurrentModule) {
35333535
return false;

test/SILOptimizer/lslocation_expansion.sil

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -105,12 +105,12 @@ bb0(%0 : $B):
105105
// CHECK-NEXT: [[RET0:%.+]] = alloc_stack
106106
// CHECK-NEXT: Projection Path [$*S1
107107
// CHECK-NEXT: Field: var a: Int in: $*Int
108-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
108+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
109109
// CHECK: #1 store
110110
// CHECK-NEXT: [[RET0:%.+]] = alloc_stack
111111
// CHECK-NEXT: Projection Path [$*S1
112112
// CHECK-NEXT: Field: var a: Int in: $*Int
113-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
113+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
114114
sil @store_after_store_struct : $@convention(thin) () -> () {
115115
%1 = alloc_stack $S1
116116
%9 = integer_literal $Builtin.Int64, 0 // user: %10
@@ -130,95 +130,95 @@ sil @store_after_store_struct : $@convention(thin) () -> () {
130130
// CHECK-NEXT: alloc_stack $S2
131131
// CHECK-NEXT: Projection Path [$*S2
132132
// CHECK-NEXT: Field: var b: Int in: $*Int
133-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
133+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
134134
// CHECK-NEXT: alloc_stack $S2
135135
// CHECK-NEXT: Projection Path [$*S2
136136
// CHECK-NEXT: Field: var a: Int in: $*Int
137-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
137+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
138138
// CHECK: #1 store
139139
// CHECK-NEXT: alloc_stack $S3
140140
// CHECK-NEXT: Projection Path [$*S3
141141
// CHECK-NEXT: Field: var c: S2 in: $*S2
142142
// CHECK-NEXT: Field: var b: Int in: $*Int
143-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
143+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
144144
// CHECK-NEXT: alloc_stack $S3
145145
// CHECK-NEXT: Projection Path [$*S3
146146
// CHECK-NEXT: Field: var c: S2 in: $*S2
147147
// CHECK-NEXT: Field: var a: Int in: $*Int
148-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
148+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
149149
// CHECK-NEXT: alloc_stack $S3
150150
// CHECK-NEXT: Projection Path [$*S3
151151
// CHECK-NEXT: Field: var b: Int in: $*Int
152-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
152+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
153153
// CHECK-NEXT: alloc_stack $S3
154154
// CHECK-NEXT: Projection Path [$*S3
155155
// CHECK-NEXT: Field: var a: S2 in: $*S2
156156
// CHECK-NEXT: Field: var b: Int in: $*Int
157-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
157+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
158158
// CHECK-NEXT: alloc_stack $S3
159159
// CHECK-NEXT: Projection Path [$*S3
160160
// CHECK-NEXT: Field: var a: S2 in: $*S2
161161
// CHECK-NEXT: Field: var a: Int in: $*Int
162-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
162+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
163163
// CHECK: #2 store
164164
// CHECK-NEXT: alloc_stack $S4
165165
// CHECK-NEXT: Projection Path [$*S4
166166
// CHECK-NEXT: Field: var y: S3 in: $*S3
167167
// CHECK-NEXT: Field: var c: S2 in: $*S2
168168
// CHECK-NEXT: Field: var b: Int in: $*Int
169-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
169+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
170170
// CHECK-NEXT: alloc_stack $S4
171171
// CHECK-NEXT: Projection Path [$*S4
172172
// CHECK-NEXT: Field: var y: S3 in: $*S3
173173
// CHECK-NEXT: Field: var c: S2 in: $*S2
174174
// CHECK-NEXT: Field: var a: Int in: $*Int
175-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
175+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
176176
// CHECK-NEXT: alloc_stack $S4
177177
// CHECK-NEXT: Projection Path [$*S4
178178
// CHECK-NEXT: Field: var y: S3 in: $*S3
179179
// CHECK-NEXT: Field: var b: Int in: $*Int
180-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
180+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
181181
// CHECK-NEXT: alloc_stack $S4
182182
// CHECK-NEXT: Projection Path [$*S4
183183
// CHECK-NEXT: Field: var y: S3 in: $*S3
184184
// CHECK-NEXT: Field: var a: S2 in: $*S2
185185
// CHECK-NEXT: Field: var b: Int in: $*Int
186-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
186+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
187187
// CHECK-NEXT: alloc_stack $S4
188188
// CHECK-NEXT: Projection Path [$*S4
189189
// CHECK-NEXT: Field: var y: S3 in: $*S3
190190
// CHECK-NEXT: Field: var a: S2 in: $*S2
191191
// CHECK-NEXT: Field: var a: Int in: $*Int
192-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
192+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
193193
// CHECK-NEXT: alloc_stack $S4
194194
// CHECK-NEXT: Projection Path [$*S4
195195
// CHECK-NEXT: Field: var x: S3 in: $*S3
196196
// CHECK-NEXT: Field: var c: S2 in: $*S2
197197
// CHECK-NEXT: Field: var b: Int in: $*Int
198-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
198+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
199199
// CHECK-NEXT: alloc_stack $S4
200200
// CHECK-NEXT: Projection Path [$*S4
201201
// CHECK-NEXT: Field: var x: S3 in: $*S3
202202
// CHECK-NEXT: Field: var c: S2 in: $*S2
203203
// CHECK-NEXT: Field: var a: Int in: $*Int
204-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
204+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
205205
// CHECK-NEXT: alloc_stack $S4
206206
// CHECK-NEXT: Projection Path [$*S4
207207
// CHECK-NEXT: Field: var x: S3 in: $*S3
208208
// CHECK-NEXT: Field: var b: Int in: $*Int
209-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
209+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
210210
// CHECK-NEXT: alloc_stack $S4
211211
// CHECK-NEXT: Projection Path [$*S4
212212
// CHECK-NEXT: Field: var x: S3 in: $*S3
213213
// CHECK-NEXT: Field: var a: S2 in: $*S2
214214
// CHECK-NEXT: Field: var b: Int in: $*Int
215-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
215+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
216216
// CHECK-NEXT: alloc_stack $S4
217217
// CHECK-NEXT: Projection Path [$*S4
218218
// CHECK-NEXT: Field: var x: S3 in: $*S3
219219
// CHECK-NEXT: Field: var a: S2 in: $*S2
220220
// CHECK-NEXT: Field: var a: Int in: $*Int
221-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
221+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
222222
sil hidden @many_struct_allocs : $@convention(thin) () -> () {
223223
bb0:
224224
%0 = alloc_stack $S2, var, name "a" // users: %6, %18

test/SILOptimizer/lslocation_type_only_expansion.sil

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -83,22 +83,22 @@ sil @S6_init : $@convention(thin) (@thin S6.Type) -> S6
8383
// CHECK: #0 store
8484
// CHECK-NEXT: Projection Path [$*S1
8585
// CHECK-NEXT: Field: var b: Int in: $*Int
86-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
86+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
8787
// CHECK-NEXT: Projection Path [$*S1
8888
// CHECK-NEXT: Field: var a: Int in: $*Int
89-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
89+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
9090
// CHECK: #1 store
9191
// CHECK-NEXT: Projection Path [$*S2
9292
// CHECK-NEXT: Field: var b: S1 in: $*S1
9393
// CHECK-NEXT: Field: var b: Int in: $*Int
94-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
94+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
9595
// CHECK-NEXT: Projection Path [$*S2
9696
// CHECK-NEXT: Field: var b: S1 in: $*S1
9797
// CHECK-NEXT: Field: var a: Int in: $*Int
98-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
98+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
9999
// CHECK-NEXT: Projection Path [$*S2
100100
// CHECK-NEXT: Field: var a: Int in: $*Int
101-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
101+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
102102
sil hidden @test_struct_type_expansion : $@convention(thin) () -> () {
103103
bb0:
104104
%0 = alloc_stack $S1, var, name "a" // users: %5, %12
@@ -145,16 +145,16 @@ bb0:
145145
// CHECK-NEXT: Field: var a: S2 in: $*S2
146146
// CHECK-NEXT: Field: var b: S1 in: $*S1
147147
// CHECK-NEXT: Field: var b: Int in: $*Int
148-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
148+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
149149
// CHECK-NEXT: Projection Path [$*S3
150150
// CHECK-NEXT: Field: var a: S2 in: $*S2
151151
// CHECK-NEXT: Field: var b: S1 in: $*S1
152152
// CHECK-NEXT: Field: var a: Int in: $*Int
153-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
153+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
154154
// CHECK-NEXT: Projection Path [$*S3
155155
// CHECK-NEXT: Field: var a: S2 in: $*S2
156156
// CHECK-NEXT: Field: var a: Int in: $*Int
157-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
157+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
158158
// CHECK-NEXT: Projection Path [$*S3
159159
// CHECK-NEXT: Field: var c: C1 in: $*C1]
160160
sil hidden @test_struct_and_class_slot : $@convention(thin) () -> () {
@@ -179,20 +179,20 @@ bb0:
179179
// CHECK-NEXT: Field: var c: (Int, Int, S1) in: $*(Int, Int, S1)
180180
// CHECK-NEXT: Index: 2 in: $*S1
181181
// CHECK-NEXT: Field: var b: Int in: $*Int
182-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
182+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
183183
// CHECK-NEXT: Projection Path [$*S4
184184
// CHECK-NEXT: Field: var c: (Int, Int, S1) in: $*(Int, Int, S1)
185185
// CHECK-NEXT: Index: 2 in: $*S1
186186
// CHECK-NEXT: Field: var a: Int in: $*Int
187-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
187+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
188188
// CHECK-NEXT: Projection Path [$*S4
189189
// CHECK-NEXT: Field: var c: (Int, Int, S1) in: $*(Int, Int, S1)
190190
// CHECK-NEXT: Index: 1 in: $*Int
191-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
191+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
192192
// CHECK-NEXT: Projection Path [$*S4
193193
// CHECK-NEXT: Field: var c: (Int, Int, S1) in: $*(Int, Int, S1)
194194
// CHECK-NEXT: Index: 0 in: $*Int
195-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
195+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
196196
sil hidden @test_tuple : $@convention(thin) () -> () {
197197
bb0:
198198
%0 = alloc_stack $S4, var, name "x" // users: %4, %7
@@ -219,32 +219,32 @@ bb0:
219219
// CHECK-NEXT: Field: var a: S2 in: $*S2
220220
// CHECK-NEXT: Field: var b: S1 in: $*S1
221221
// CHECK-NEXT: Field: var b: Int in: $*Int
222-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
222+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
223223
// CHECK-NEXT: Projection Path [$*S5
224224
// CHECK-NEXT: Field: var c: (Int, Int, S3) in: $*(Int, Int, S3)
225225
// CHECK-NEXT: Index: 2 in: $*S3
226226
// CHECK-NEXT: Field: var a: S2 in: $*S2
227227
// CHECK-NEXT: Field: var b: S1 in: $*S1
228228
// CHECK-NEXT: Field: var a: Int in: $*Int
229-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
229+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
230230
// CHECK-NEXT: Projection Path [$*S5
231231
// CHECK-NEXT: Field: var c: (Int, Int, S3) in: $*(Int, Int, S3)
232232
// CHECK-NEXT: Index: 2 in: $*S3
233233
// CHECK-NEXT: Field: var a: S2 in: $*S2
234234
// CHECK-NEXT: Field: var a: Int in: $*Int
235-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
235+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
236236
// CHECK-NEXT: Projection Path [$*S5
237237
// CHECK-NEXT: Field: var c: (Int, Int, S3) in: $*(Int, Int, S3)
238238
// CHECK-NEXT: Index: 2 in: $*S3
239239
// CHECK-NEXT: Field: var c: C1 in: $*C1]
240240
// CHECK-NEXT: Projection Path [$*S5
241241
// CHECK-NEXT: Field: var c: (Int, Int, S3) in: $*(Int, Int, S3)
242242
// CHECK-NEXT: Index: 1 in: $*Int
243-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
243+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
244244
// CHECK-NEXT: Projection Path [$*S5
245245
// CHECK-NEXT: Field: var c: (Int, Int, S3) in: $*(Int, Int, S3)
246246
// CHECK-NEXT: Index: 0 in: $*Int
247-
// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
247+
// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
248248
sil hidden @tuple_test_with_reference : $@convention(thin) () -> () {
249249
bb0:
250250
%0 = alloc_stack $S5, var, name "x" // users: %4, %7
@@ -264,11 +264,11 @@ bb0:
264264
/// CHECK-NEXT: Projection Path [$*S6
265265
/// CHECK-NEXT: Field: var tuple: (Int, Int) in: $*(Int, Int)
266266
/// CHECK-NEXT: Index: 1 in: $*Int
267-
/// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
267+
/// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
268268
/// CHECK-NEXT: Projection Path [$*S6
269269
/// CHECK-NEXT: Field: var tuple: (Int, Int) in: $*(Int, Int)
270270
/// CHECK-NEXT: Index: 0 in: $*Int
271-
/// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
271+
/// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
272272
sil hidden @tuple_inside_struct : $@convention(thin) () -> () {
273273
bb0:
274274
%0 = alloc_stack $S6, var, name "x" // users: %4, %7
@@ -292,7 +292,7 @@ bb0:
292292
/// CHECK-NOT: Int32
293293
/// CHECK: #1 store
294294
/// CHECK-NEXT: Projection Path [$*Int
295-
/// CHECK-NEXT: Field: var value: Int64 in: $*Builtin.Int64]
295+
/// CHECK-NEXT: Field: var value: Builtin.Int64 in: $*Builtin.Int64]
296296
sil hidden @enum_test : $@convention(thin) () -> () {
297297
bb0:
298298
%0 = alloc_stack $Example, var, name "ee" // users: %5, %11

test/TypeCoercion/integer_literals.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ func overflow_check() {
3131
}
3232

3333
// Coercion chaining.
34-
struct meters : ExpressibleByIntegerLiteral {
34+
struct meters : ExpressibleByIntegerLiteral {
3535
var value : Int8
36-
36+
3737
init(_ value: Int8) {
3838
self.value = value
3939
}
@@ -46,7 +46,7 @@ struct meters : ExpressibleByIntegerLiteral {
4646

4747
struct supermeters : ExpressibleByIntegerLiteral { // expected-error{{type 'supermeters' does not conform to protocol 'ExpressibleByIntegerLiteral'}} expected-note {{do you want to add protocol stubs?}}
4848
var value : meters
49-
49+
5050
typealias IntegerLiteralType = meters // expected-note{{possibly intended match 'supermeters.IntegerLiteralType' (aka 'meters') does not conform to '_ExpressibleByBuiltinIntegerLiteral'}}
5151
init(_integerLiteral value: meters) {
5252
self.value = value
@@ -63,6 +63,6 @@ func chaining() {
6363
func memberaccess() {
6464
Int32(5._value) // expected-warning{{unused}}
6565
// This diagnostic is actually better than it looks, because the inner type is Builtin.Int32, not actually Int32.
66-
let x : Int32 = 7._value // expected-error{{cannot convert value of type 'Builtin.Int32' to specified type 'Swift.Int32'}}
66+
let x : Int32 = 7._value // expected-error{{cannot convert value of type 'Builtin.Int32' to specified type 'Int32'}}
6767
_ = x
6868
}

test/stdlib/UnsafePointerDiagnostics.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,8 @@ func unsafePointerConversionAvailability(
6767
_ = UnsafeMutablePointer<Void>(umpi) // expected-warning {{UnsafeMutablePointer<Void> has been replaced by UnsafeMutableRawPointer}}
6868
_ = UnsafeMutablePointer<Void>(umps) // expected-warning {{UnsafeMutablePointer<Void> has been replaced by UnsafeMutableRawPointer}}
6969

70-
_ = UnsafePointer<Void>(rp) // expected-error {{cannot convert value of type 'UnsafeRawPointer' to expected argument type 'RawPointer'}} expected-warning {{UnsafePointer<Void> has been replaced by UnsafeRawPointer}}
71-
_ = UnsafePointer<Void>(mrp) // expected-error {{cannot convert value of type 'UnsafeMutableRawPointer' to expected argument type 'RawPointer'}} expected-warning {{UnsafePointer<Void> has been replaced by UnsafeRawPointer}}
70+
_ = UnsafePointer<Void>(rp) // expected-error {{cannot convert value of type 'UnsafeRawPointer' to expected argument type 'Builtin.RawPointer'}} expected-warning {{UnsafePointer<Void> has been replaced by UnsafeRawPointer}}
71+
_ = UnsafePointer<Void>(mrp) // expected-error {{cannot convert value of type 'UnsafeMutableRawPointer' to expected argument type 'Builtin.RawPointer'}} expected-warning {{UnsafePointer<Void> has been replaced by UnsafeRawPointer}}
7272
_ = UnsafePointer<Void>(umpv) // expected-warning {{UnsafePointer<Void> has been replaced by UnsafeRawPointer}}
7373
_ = UnsafePointer<Void>(upv) // expected-warning {{UnsafePointer<Void> has been replaced by UnsafeRawPointer}}
7474
_ = UnsafePointer<Void>(umpi) // expected-warning {{UnsafePointer<Void> has been replaced by UnsafeRawPointer}}
@@ -81,10 +81,10 @@ func unsafePointerConversionAvailability(
8181
_ = UnsafeMutablePointer<Int>(orp) // expected-error {{no exact matches in call to initializer}}
8282
_ = UnsafeMutablePointer<Int>(omrp) // expected-error {{no exact matches in call to initializer}}
8383

84-
_ = UnsafePointer<Int>(rp) // expected-error {{cannot convert value of type 'UnsafeRawPointer' to expected argument type 'RawPointer'}}
85-
_ = UnsafePointer<Int>(mrp) // expected-error {{cannot convert value of type 'UnsafeMutableRawPointer' to expected argument type 'RawPointer'}}
86-
_ = UnsafePointer<Int>(orp) // expected-error {{cannot convert value of type 'UnsafeRawPointer?' to expected argument type 'RawPointer'}}
87-
_ = UnsafePointer<Int>(omrp) // expected-error {{cannot convert value of type 'UnsafeMutableRawPointer?' to expected argument type 'RawPointer'}}
84+
_ = UnsafePointer<Int>(rp) // expected-error {{cannot convert value of type 'UnsafeRawPointer' to expected argument type 'Builtin.RawPointer'}}
85+
_ = UnsafePointer<Int>(mrp) // expected-error {{cannot convert value of type 'UnsafeMutableRawPointer' to expected argument type 'Builtin.RawPointer'}}
86+
_ = UnsafePointer<Int>(orp) // expected-error {{cannot convert value of type 'UnsafeRawPointer?' to expected argument type 'Builtin.RawPointer'}}
87+
_ = UnsafePointer<Int>(omrp) // expected-error {{cannot convert value of type 'UnsafeMutableRawPointer?' to expected argument type 'Builtin.RawPointer'}}
8888

8989
_ = UnsafePointer<Int>(ups) // expected-error {{cannot convert value of type 'UnsafePointer<String>' to expected argument type 'UnsafePointer<Int>'}}
9090
// expected-note@-1 {{arguments to generic parameter 'Pointee' ('String' and 'Int') are expected to be equal}}

test/type/builtin_types.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// RUN: %target-typecheck-verify-swift -parse-stdlib
2+
3+
import Swift
4+
5+
func testBuiltinModulePrint(_ builtin: Builtin.Int64) -> Bool {
6+
let x = 35
7+
return x == builtin // expected-error {{operator function '==' requires that 'Builtin.Int64' conform to 'BinaryInteger'}}
8+
}

0 commit comments

Comments
 (0)