Skip to content

Commit 81b1afc

Browse files
committed
[FixCode] Apply coercion fixits on return statement and initialization as well. rdar://27891589 rdar://27891426
We saw manual migration is necessary on these cases to add 'as Type'. This patch starts to issue compiler fixits on return statement and initialization just like in other type-mismatch cases.
1 parent 338f75a commit 81b1afc

File tree

4 files changed

+19
-1
lines changed

4 files changed

+19
-1
lines changed

lib/Sema/CSDiag.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4026,6 +4026,8 @@ bool FailureDiagnosis::diagnoseContextualConversionError() {
40264026
case CTP_DictionaryKey:
40274027
case CTP_DictionaryValue:
40284028
case CTP_AssignSource:
4029+
case CTP_Initialization:
4030+
case CTP_ReturnStmt:
40294031
tryRawRepresentableFixIts(diag, CS, exprType, contextualType,
40304032
KnownProtocolKind::ExpressibleByIntegerLiteral,
40314033
expr) ||

test/FixCode/fixits-apply-objc.swift

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,11 @@ func foo(an : Any) {
2121
let a3 : AnyObject!
2222
a3 = an
2323
}
24+
25+
func foo1(_ an : Any) {
26+
let obj: AnyObject = an
27+
}
28+
29+
func foo2(_ messageData: Any?) -> AnyObject? {
30+
return messageData
31+
}

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,3 +21,11 @@ func foo(an : Any) {
2121
let a3 : AnyObject!
2222
a3 = an as AnyObject!
2323
}
24+
25+
func foo1(_ an : Any) {
26+
let obj: AnyObject = an as AnyObject
27+
}
28+
29+
func foo2(_ messageData: Any?) -> AnyObject? {
30+
return messageData as AnyObject?
31+
}

test/FixCode/fixits-apply.swift.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ struct MyMask : OptionSet {
2828
}
2929

3030
func supported() -> MyMask {
31-
return MyMask.Bingo
31+
return MyMask(rawValue: UInt(MyMask.Bingo))
3232
}
3333

3434
struct MyEventMask2 : OptionSet {

0 commit comments

Comments
 (0)