Skip to content

Commit 91664f2

Browse files
authored
Merge pull request #27732 from JGiola/SR-6717
SR-6717 Builtin types are always be printed with Builtin prefix
2 parents 022c6ac + afca797 commit 91664f2

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)