blob: bb49c197ab19ca59084115d8a980d33d9dea2d00 [file] [log] [blame]
// RUN: %target-typecheck-verify-swift -I %S/Inputs -enable-source-import
import diag_values_of_module_type_foo
//===--- Allowed uses of module names.
var zero: Int8 = 0
var goodGlobal1: Swift.Int
var goodGlobal2 = Swift.Int(zero)
var goodGlobal3 = diag_values_of_module_type_foo.SomeStruct(a: 0)
class GoodClass1 : diag_values_of_module_type_foo.SomeClass {}
struct GoodStruct1 : diag_values_of_module_type_foo.SomeProtocol {
typealias Foo = Swift.Int
}
struct GoodStruct2 {
var instanceVar1: Swift.Int
var instanceVar2 = Swift.Int(zero)
var instanceVar3 = diag_values_of_module_type_foo.SomeStruct(a: 0)
static var staticVar1: Swift.Int = 42
static var staticVar2 = Swift.Int(zero)
static var staticVar3 = diag_values_of_module_type_foo.SomeStruct(a: 0)
}
enum GoodEnum {
case Foo1(Swift.Int)
}
protocol GoodProtocol1 : diag_values_of_module_type_foo.SomeProtocol {
associatedtype GoodTypealias1 : diag_values_of_module_type_foo.SomeProtocol
}
typealias GoodTypealias1 = Swift.Int
func goodTest1() {
_ = Swift.Int(zero)
var _ : diag_values_of_module_type_foo.SomeClass
var _ : diag_values_of_module_type_foo.SomeClass.NestedClass
var _ : diag_values_of_module_type_foo.SomeStruct
var _ : diag_values_of_module_type_foo.SomeEnum
var _ : diag_values_of_module_type_foo.SomeExistential
var _ : diag_values_of_module_type_foo.SomeTypealias
_ = diag_values_of_module_type_foo.SomeClass()
_ = diag_values_of_module_type_foo.SomeClass.NestedClass()
_ = diag_values_of_module_type_foo.SomeClass.staticFunc1
_ = diag_values_of_module_type_foo.SomeClass.staticFunc1()
_ = diag_values_of_module_type_foo.SomeClass.staticVar1
_ = diag_values_of_module_type_foo.SomeStruct()
_ = diag_values_of_module_type_foo.SomeEnum.Foo
// Cannot default-construct a protocol.
// _ = diag_values_of_module_type_foo.SomeExistential()
_ = diag_values_of_module_type_foo.SomeTypealias()
_ = diag_values_of_module_type_foo.someGlobal
diag_values_of_module_type_foo.someGlobal = 42
_ = diag_values_of_module_type_foo.someFunc
diag_values_of_module_type_foo.someFunc()
}
func goodTest2a(a: Swift.Int) {}
func goodTest2b(a: Swift.Int, withInt b: Swift.Int) {}
func goodTest3() -> Swift.Int {}
func goodTest4<T : diag_values_of_module_type_foo.SomeProtocol>(_: T) {}
func goodTest5<T : diag_values_of_module_type_foo.SomeProtocol>(_: T)
where T.Foo == Swift.Int {}
//===--- Disallowed uses of module names.
var badGlobal1 = Swift // expected-error {{expected module member name after module name}}
class BadClass1 {
var instanceVar1 = Swift // expected-error {{expected module member name after module name}}
func instanceFunc1() {
instanceVar1 = Swift // expected-error {{expected module member name after module name}}
}
}
func badTest1() {
var x = Swift // expected-error {{expected module member name after module name}}
x = Swift // expected-error {{expected module member name after module name}}
_ = x
}
func badTest2() {
var x = 0
x = Swift // expected-error {{cannot assign value of type 'module<Swift>' to type 'Int'}}
_ = x
}
func badTest3() {
var _ = Swift. // expected-error {{expected member name following '.'}}
}
func badTest4() {
_ = Swift // expected-error {{expected module member name after module name}}
}
func badTest5() {
_ = Swift. // expected-error {{expected member name following '.'}}
}
func badTest6() {
_ = { () -> Int in
_ = Swift // expected-error {{expected module member name after module name}}
return 42 }()
_ = { Swift }() // expected-error {{expected module member name after module name}}
_ = { { Swift }() }() // expected-error {{expected module member name after module name}}
}