Skip to content

Commit 0b8f3e4

Browse files
authored
Merge pull request #4342 from benlangmuir/fixit-anyobj-cast-swift3
[FixCode] Apply coercion fixit for assignment types' mismatch too
2 parents bc0cfad + 5ddafde commit 0b8f3e4

File tree

4 files changed

+34
-15
lines changed

4 files changed

+34
-15
lines changed

lib/Sema/CSDiag.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4014,6 +4014,7 @@ bool FailureDiagnosis::diagnoseContextualConversionError() {
40144014
case CTP_ArrayElement:
40154015
case CTP_DictionaryKey:
40164016
case CTP_DictionaryValue:
4017+
case CTP_AssignSource:
40174018
tryRawRepresentableFixIts(diag, CS, exprType, contextualType,
40184019
KnownProtocolKind::ExpressibleByIntegerLiteral,
40194020
expr) ||

test/FixCode/fixits-apply-selector.swift renamed to test/FixCode/fixits-apply-objc.swift

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -disable-objc-attr-requires-foundation-module -parse %s -emit-fixits-path %t.remap
1+
// RUN: not %target-swift-frontend(mock-sdk: %clang-importer-sdk) -disable-objc-attr-requires-foundation-module -parse %s -emit-fixits-path %t.remap
22
// RUN: c-arcmt-test %t.remap | arcmt-test -verify-transformed-files %s.result
33
import ObjectiveC
44

@@ -12,3 +12,12 @@ import ObjectiveC
1212
takeSel(Selector("mySel"))
1313
}
1414
}
15+
16+
func foo(an : Any) {
17+
let a1 : AnyObject
18+
a1 = an
19+
let a2 : AnyObject?
20+
a2 = an
21+
let a3 : AnyObject!
22+
a3 = an
23+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
// RUN: not %target-swift-frontend(mock-sdk: %clang-importer-sdk) -disable-objc-attr-requires-foundation-module -parse %s -emit-fixits-path %t.remap
2+
// RUN: c-arcmt-test %t.remap | arcmt-test -verify-transformed-files %s.result
3+
import ObjectiveC
4+
5+
// REQUIRES: objc_interop
6+
7+
@objc class Selectors {
8+
func takeSel(_: Selector) {}
9+
func mySel() {}
10+
func test() {
11+
takeSel(#selector(Selectors.mySel))
12+
takeSel(#selector(Selectors.mySel))
13+
}
14+
}
15+
16+
func foo(an : Any) {
17+
let a1 : AnyObject
18+
a1 = an as AnyObject
19+
let a2 : AnyObject?
20+
a2 = an as AnyObject?
21+
let a3 : AnyObject!
22+
a3 = an as AnyObject!
23+
}

test/FixCode/fixits-apply-selector.swift.result

Lines changed: 0 additions & 14 deletions
This file was deleted.

0 commit comments

Comments
 (0)