Skip to content

Commit cb0cdbc

Browse files
authored
Merge pull request #32452 from xedin/rdar-62927467
[CSApply] Always try to load arguments constructing object literals
2 parents 92652e0 + baaff0d commit cb0cdbc

File tree

2 files changed

+11
-0
lines changed

2 files changed

+11
-0
lines changed

lib/Sema/CSApply.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2563,6 +2563,7 @@ namespace {
25632563
if (!witness || !isa<AbstractFunctionDecl>(witness.getDecl()))
25642564
return nullptr;
25652565
expr->setInitializer(witness);
2566+
expr->setArg(cs.coerceToRValue(expr->getArg()));
25662567
return expr;
25672568
}
25682569

test/Sema/object_literals_osx.swift

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,13 @@ let text = #fileLiteral(resourceName: "TextFile.txt").relativeString! // expecte
3535
#fileLiteral() // expected-error{{missing argument for parameter 'resourceName' in call}}
3636
// expected-error@-1{{could not infer type of file reference literal}}
3737
// expected-note@-2{{import Foundation to use 'URL' as the default file reference literal type}}
38+
39+
// rdar://problem/62927467
40+
func test_literal_arguments_are_loaded() {
41+
var resource = "foo.txt" // expected-warning {{variable 'resource' was never mutated; consider changing to 'let' constant}}
42+
let _: Path = #fileLiteral(resourceName: resource) // Ok
43+
44+
func test(red: inout Float, green: inout Float) -> S {
45+
return #colorLiteral(red: red, green: green, blue: 1, alpha: 1) // Ok
46+
}
47+
}

0 commit comments

Comments
 (0)