mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
The directory currently seems to have a mix of tests for import resolution and name lookup. Therefore split it into two directories; ImportResolution and NameLookup.
55 lines
1.6 KiB
Swift
55 lines
1.6 KiB
Swift
// RUN: %empty-directory(%t)
|
||
// RUN: %target-swift-frontend -emit-module -o %t %S/Inputs/overload_vars.swift
|
||
// RUN: %target-typecheck-verify-swift -swift-version 5 -I %t
|
||
|
||
import overload_vars
|
||
|
||
func useString(_ str: String) {}
|
||
|
||
// In Swift 5, properties from this module currently always shadow properties
|
||
// from the other module – therefore meaning that the properties from the other
|
||
// module never show up in the overload set.
|
||
// FIX-ME: It seems reasonable for both to show up in the overload set.
|
||
|
||
extension HasFooGeneric {
|
||
var foo: String { return "" }
|
||
var bar: String { return "" }
|
||
|
||
func baz() {
|
||
let x1 = foo // No ambiguity error.
|
||
useString(x1) // Make sure we resolved to `foo: String`.
|
||
|
||
// Make sure `foo: Int` is not in the overload set.
|
||
let x2: Int = foo // expected-error {{cannot convert}}
|
||
_ = x2
|
||
|
||
let y1 = bar // No ambiguity error.
|
||
useString(y1) // Make sure we resolved to `bar: String`.
|
||
|
||
// Make sure `bar: Int` is not in the overload set.
|
||
let y2: Int = bar // expected-error {{cannot convert}}
|
||
_ = y2
|
||
}
|
||
}
|
||
|
||
extension HasFooNonGeneric {
|
||
var foo: String { return "" }
|
||
var bar: String { return "" }
|
||
|
||
func baz() {
|
||
let x1 = foo // No ambiguity error.
|
||
useString(x1) // Make sure we resolved to `foo: String`.
|
||
|
||
// Make sure `foo: Int` is not in the overload set.
|
||
let x2: Int = foo // expected-error {{cannot convert}}
|
||
_ = x2
|
||
|
||
let y1 = bar // No ambiguity error.
|
||
useString(y1) // Make sure we resolved to `bar: String`.
|
||
|
||
// Make sure `bar: Int` is not in the overload set.
|
||
let y2: Int = bar // expected-error {{cannot convert}}
|
||
_ = y2
|
||
}
|
||
}
|