| // RUN: %target-typecheck-verify-swift |
| |
| var var_redecl1: Int // expected-note {{previously declared here}} |
| var_redecl1 = 0 |
| var var_redecl1: UInt // expected-error {{invalid redeclaration of 'var_redecl1'}} |
| |
| var var_redecl2: Int // expected-note {{previously declared here}} |
| var_redecl2 = 0 |
| var var_redecl2: Int // expected-error {{invalid redeclaration of 'var_redecl2'}} |
| |
| var var_redecl3: (Int) -> () { get {} } // expected-note {{previously declared here}} |
| var var_redecl3: () -> () { get {} } // expected-error {{invalid redeclaration of 'var_redecl3'}} |
| |
| var var_redecl4: Int // expected-note 2{{previously declared here}} |
| var var_redecl4: Int // expected-error {{invalid redeclaration of 'var_redecl4'}} |
| var var_redecl4: Int // expected-error {{invalid redeclaration of 'var_redecl4'}} |
| |
| |
| let let_redecl1: Int = 0 // expected-note {{previously declared here}} |
| let let_redecl1: UInt = 0 // expected-error {{invalid redeclaration}} |
| |
| let let_redecl2: Int = 0 // expected-note {{previously declared here}} |
| let let_redecl2: Int = 0 // expected-error {{invalid redeclaration}} |
| |
| |
| class class_redecl1 {} // expected-note {{previously declared here}} |
| class class_redecl1 {} // expected-error {{invalid redeclaration}} |
| |
| class class_redecl2<T> {} // expected-note {{previously declared here}} |
| class class_redecl2 {} // expected-error {{invalid redeclaration}} |
| |
| class class_redecl3 {} // expected-note {{previously declared here}} |
| class class_redecl3<T> {} // expected-error {{invalid redeclaration}} |
| |
| |
| struct struct_redecl1 {} // expected-note {{previously declared here}} |
| struct struct_redecl1 {} // expected-error {{invalid redeclaration}} |
| |
| struct struct_redecl2<T> {} // expected-note {{previously declared here}} |
| struct struct_redecl2 {} // expected-error {{invalid redeclaration}} |
| |
| struct struct_redecl3 {} // expected-note {{previously declared here}} |
| struct struct_redecl3<T> {} // expected-error {{invalid redeclaration}} |
| |
| |
| enum enum_redecl1 {} // expected-note {{previously declared here}} |
| enum enum_redecl1 {} // expected-error {{invalid redeclaration}} |
| |
| enum enum_redecl2<T> {} // expected-note {{previously declared here}} |
| enum enum_redecl2 {} // expected-error {{invalid redeclaration}} |
| |
| enum enum_redecl3 {} // expected-note {{previously declared here}} |
| enum enum_redecl3<T> {} // expected-error {{invalid redeclaration}} |
| |
| |
| protocol protocol_redecl1 {} // expected-note {{previously declared here}} |
| protocol protocol_redecl1 {} // expected-error {{invalid redeclaration}} |
| |
| |
| typealias typealias_redecl1 = Int // expected-note {{previously declared here}} |
| typealias typealias_redecl1 = Int // expected-error {{invalid redeclaration}} |
| |
| typealias typealias_redecl2 = Int // expected-note {{previously declared here}} |
| typealias typealias_redecl2 = UInt // expected-error {{invalid redeclaration}} |
| |
| |
| var mixed_redecl1: Int // expected-note {{previously declared here}} |
| class mixed_redecl1 {} // expected-error {{invalid redeclaration}} |
| class mixed_redecl1a : mixed_redecl1 {} |
| |
| class mixed_redecl2 {} // expected-note {{previously declared here}} |
| struct mixed_redecl2 {} // expected-error {{invalid redeclaration}} |
| |
| class mixed_redecl3 {} // expected-note {{previously declared here}} |
| // expected-note @-1 2{{found this candidate}} |
| enum mixed_redecl3 {} // expected-error {{invalid redeclaration}} |
| // expected-note @-1 2{{found this candidate}} |
| enum mixed_redecl3a : mixed_redecl3 {} // expected-error {{'mixed_redecl3' is ambiguous for type lookup in this context}} |
| class mixed_redecl3b : mixed_redecl3 {} // expected-error {{'mixed_redecl3' is ambiguous for type lookup in this context}} |
| |
| class mixed_redecl4 {} // expected-note {{previously declared here}} |
| // expected-note@-1{{found this candidate}} |
| protocol mixed_redecl4 {} // expected-error {{invalid redeclaration}} |
| // expected-note@-1{{found this candidate}} |
| protocol mixed_redecl4a : mixed_redecl4 {} // expected-error {{'mixed_redecl4' is ambiguous for type lookup in this context}} |
| |
| class mixed_redecl5 {} // expected-note {{previously declared here}} |
| typealias mixed_redecl5 = Int // expected-error {{invalid redeclaration}} |
| typealias mixed_redecl5a = mixed_redecl5 |
| |
| func mixed_redecl6() {} // expected-note {{'mixed_redecl6()' previously declared here}} |
| var mixed_redecl6: Int // expected-error {{invalid redeclaration of 'mixed_redecl6'}} |
| |
| var mixed_redecl7: Int // expected-note {{'mixed_redecl7' previously declared here}} |
| func mixed_redecl7() {} // expected-error {{invalid redeclaration of 'mixed_redecl7()'}} |
| |
| func mixed_redecl8() {} // expected-note {{previously declared here}} |
| class mixed_redecl8 {} // expected-error {{invalid redeclaration}} |
| class mixed_redecl8a : mixed_redecl8 {} |
| |
| class mixed_redecl9 {} // expected-note {{previously declared here}} |
| func mixed_redecl9() {} // expected-error {{invalid redeclaration}} |
| |
| func mixed_redecl10() {} // expected-note {{previously declared here}} |
| typealias mixed_redecl10 = Int // expected-error {{invalid redeclaration}} |
| |
| typealias mixed_redecl11 = Int // expected-note {{previously declared here}} |
| func mixed_redecl11() {} // expected-error {{invalid redeclaration}} |
| |
| var mixed_redecl12: Int // expected-note {{previously declared here}} |
| let mixed_redecl12: Int = 0 // expected-error {{invalid redeclaration}} |
| |
| let mixed_redecl13: Int = 0 // expected-note {{previously declared here}} |
| var mixed_redecl13: Int // expected-error {{invalid redeclaration}} |
| |
| var mixed_redecl14 : Int |
| func mixed_redecl14(_ i: Int) {} // okay |
| |
| func mixed_redecl15(_ i: Int) {} |
| var mixed_redecl15 : Int // okay |
| |
| var mixed_redecl16: Int // expected-note {{'mixed_redecl16' previously declared here}} |
| func mixed_redecl16() -> Int {} // expected-error {{invalid redeclaration of 'mixed_redecl16()'}} |
| |
| class OverloadStaticFromBase { |
| class func create() {} |
| } |
| class OverloadStaticFromBase_Derived : OverloadStaticFromBase { |
| class func create(_ x: Int) {} |
| } |
| |
| |
| // Overloading of functions based on argument names only. |
| func ovl_argname1(x: Int, y: Int) { } |
| func ovl_argname1(y: Int, x: Int) { } |
| func ovl_argname1(a: Int, b: Int) { } |
| |
| // Overloading with generics |
| protocol P1 { } |
| protocol P2 { } |
| func ovl_generic1<T: P1 & P2>(t: T) { } // expected-note{{previous}} |
| func ovl_generic1<U: P1 & P2>(t: U) { } // expected-error{{invalid redeclaration of 'ovl_generic1(t:)'}} |
| |
| func ovl_generic2<T : P1>(_: T) {} // expected-note{{previously declared here}} |
| func ovl_generic2<T : P1>(_: T) {} // expected-error{{invalid redeclaration of 'ovl_generic2'}} |
| |
| func ovl_generic3<T : P1>(_ x: T) {} // OK |
| func ovl_generic3<T : P2>(_ x: T) {} // OK |
| |
| // Redeclarations within nominal types |
| struct X { } |
| struct Y { } |
| struct Z { |
| var a : X, // expected-note{{previously declared here}} |
| a : Y // expected-error{{invalid redeclaration of 'a'}} |
| |
| var b: X // expected-note{{previously declared here}} |
| } |
| |
| extension Z { |
| var b: Int { return 0 } // expected-error{{invalid redeclaration of 'b'}} |
| } |
| |
| struct X1 { |
| func f(a : Int) {} // expected-note{{previously declared here}} |
| func f(a : Int) {} // expected-error{{invalid redeclaration of 'f(a:)'}} |
| } |
| struct X2 { |
| func f(a : Int) {} // expected-note{{previously declared here}} |
| typealias IntAlias = Int |
| func f(a : IntAlias) {} // expected-error{{invalid redeclaration of 'f(a:)'}} |
| } |
| struct X3 { |
| func f(a : Int) {} // expected-note{{previously declared here}} |
| func f(a : IntAlias) {} // expected-error{{invalid redeclaration of 'f(a:)'}} |
| typealias IntAlias = Int |
| } |
| struct X4 { |
| typealias i = Int |
| // expected-note@-1 {{previously declared}} |
| // expected-note@-2 {{previously declared}} |
| |
| static var i: String { return "" } // expected-error{{invalid redeclaration of 'i'}} |
| static func i() {} // expected-error{{invalid redeclaration of 'i()'}} |
| |
| static var j: Int { return 0 } // expected-note{{previously declared here}} |
| struct j {} // expected-error{{invalid redeclaration of 'j'}} |
| |
| var i: Int { return 0 } |
| func i(x: String) {} |
| } |
| |
| extension X4 { |
| static var k: Int { return 0 } // expected-note{{previously declared here}} |
| struct k {} // expected-error{{invalid redeclaration of 'k'}} |
| } |
| |
| // Generic Placeholders |
| struct X5<t, u, v> { |
| static var t: Int { return 0 } |
| static func u() {} |
| typealias v = String |
| |
| func foo<t>(_ t: t) { |
| let t = t |
| _ = t |
| } |
| } |
| |
| struct X6<T> { |
| var foo: T // expected-note{{previously declared here}} |
| func foo() -> T {} // expected-error{{invalid redeclaration of 'foo()'}} |
| func foo(_ x: T) {} |
| |
| static var j: Int { return 0 } // expected-note{{previously declared here}} |
| struct j {} // expected-error{{invalid redeclaration of 'j'}} |
| } |
| |
| extension X6 { |
| var k: Int { return 0 } // expected-note{{previously declared here}} |
| func k() |
| // expected-error@-1{{invalid redeclaration of 'k()'}} |
| // expected-error@-2{{expected '{' in body of function declaration}} |
| } |
| |
| // Subscripting |
| struct Subscript1 { |
| subscript (a: Int) -> Int { |
| get { return a } |
| } |
| |
| subscript (a: Float) -> Int { |
| get { return Int(a) } |
| } |
| |
| subscript (a: Int) -> Float { |
| get { return Float(a) } |
| } |
| } |
| |
| struct Subscript2 { |
| subscript (a: Int) -> Int { // expected-note{{previously declared here}} |
| get { return a } |
| } |
| |
| subscript (a: Int) -> Int { // expected-error{{invalid redeclaration of 'subscript(_:)'}} |
| get { return a } |
| } |
| |
| var `subscript`: Int { return 0 } |
| } |
| |
| struct Subscript3 { |
| typealias `subscript` = Int // expected-note{{previously declared here}} |
| static func `subscript`(x: Int) -> String { return "" } // expected-error{{invalid redeclaration of 'subscript(x:)'}} |
| |
| func `subscript`(x: Int) -> String { return "" } |
| subscript(x x: Int) -> String { return "" } |
| } |
| |
| struct Subscript4 { |
| subscript(f: @escaping (Int) -> Int) -> Int { // expected-note{{previously declared here}} |
| get { return f(0) } |
| } |
| |
| subscript(f: (Int) -> Int) -> Int { // expected-error{{invalid redeclaration of 'subscript(_:)'}} |
| get { return f(0) } |
| } |
| } |
| |
| struct GenericSubscripts { |
| subscript<T>(x: T) -> Int { return 0 } // expected-note{{previously declared here}} |
| } |
| |
| extension GenericSubscripts { |
| subscript<U>(x: U) -> Int { return 0 } // expected-error{{invalid redeclaration of 'subscript(_:)'}} |
| subscript<T, U>(x: T) -> U { fatalError() } |
| subscript<T>(x: T) -> T { fatalError() } |
| subscript(x: Int) -> Int { return 0 } |
| } |
| |
| struct GenericSubscripts2<T> { |
| subscript(x: T) -> Int { return 0 } // expected-note{{previously declared here}} |
| } |
| |
| extension GenericSubscripts2 { |
| subscript(x: T) -> Int { return 0 } // expected-error{{invalid redeclaration of 'subscript(_:)'}} |
| subscript<U>(x: U) -> Int { return 0 } |
| subscript(x: T) -> T { fatalError() } |
| subscript<U>(x: T) -> U { fatalError() } |
| subscript<U, V>(x: U) -> V { fatalError() } |
| subscript(x: Int) -> Int { return 0 } |
| } |
| |
| struct GenericSubscripts3<T> { |
| subscript<U>(x: T) -> U { fatalError() } // expected-note{{previously declared here}} |
| } |
| |
| extension GenericSubscripts3 { |
| subscript<U>(x: T) -> U { fatalError() } // expected-error{{invalid redeclaration of 'subscript(_:)'}} |
| subscript<U, V>(x: U) -> V { fatalError() } |
| subscript<U>(x: U) -> U { fatalError() } |
| subscript(x: Int) -> Int { return 0 } |
| } |
| |
| // Initializers |
| class Initializers { |
| init(x: Int) { } // expected-note{{previously declared here}} |
| convenience init(x: Int) { } // expected-error{{invalid redeclaration of 'init(x:)'}} |
| |
| static func `init`(x: Int) -> Initializers { fatalError() } |
| func `init`(x: Int) -> Initializers { fatalError() } |
| } |
| |
| // Default arguments |
| // <rdar://problem/13338746> |
| func sub(x:Int64, y:Int64) -> Int64 { return x - y } // expected-note 2{{'sub(x:y:)' previously declared here}} |
| func sub(x:Int64, y:Int64 = 1) -> Int64 { return x - y } // expected-error{{invalid redeclaration of 'sub(x:y:)'}} |
| func sub(x:Int64 = 0, y:Int64 = 1) -> Int64 { return x - y } // expected-error{{invalid redeclaration of 'sub(x:y:)'}} |
| |
| // <rdar://problem/13783231> |
| struct NoneType { |
| } |
| |
| func != <T>(lhs : T, rhs : NoneType) -> Bool { // expected-note{{'!=' previously declared here}} |
| return true |
| } |
| |
| func != <T>(lhs : T, rhs : NoneType) -> Bool { // expected-error{{invalid redeclaration of '!=}} |
| return true |
| } |
| |
| |
| // throws |
| func throwsFunc(code: Int) { } // expected-note{{previously declared}} |
| func throwsFunc(code: Int) throws { } // expected-error{{invalid redeclaration of 'throwsFunc(code:)'}} |
| |
| // throws function parameter -- OK |
| func throwsFuncParam(_ fn: () throws -> ()) { } |
| func throwsFuncParam(_ fn: () -> ()) { } |
| |
| // @escaping |
| func escaping(x: @escaping (Int) -> Int) { } // expected-note{{previously declared}} |
| func escaping(x: (Int) -> Int) { } // expected-error{{invalid redeclaration of 'escaping(x:)'}} |
| func escaping(_ x: @escaping (Int) -> Int) { } // expected-note{{previously declared}} |
| func escaping(_ x: (Int) -> Int) { } // expected-error{{invalid redeclaration of 'escaping'}} |
| func escaping(a: Int, _ x: @escaping (Int) -> Int) { } // expected-note{{previously declared}} |
| func escaping(a: Int, _ x: (Int) -> Int) { } // expected-error{{invalid redeclaration of 'escaping(a:_:)'}} |
| |
| func escaping(_ a: (Int) -> Int, _ x: (Int) -> Int) { } |
| // expected-note@-1{{previously declared}} |
| // expected-note@-2{{previously declared}} |
| // expected-note@-3{{previously declared}} |
| func escaping(_ a: (Int) -> Int, _ x: @escaping (Int) -> Int) { } // expected-error{{invalid redeclaration of 'escaping'}} |
| func escaping(_ a: @escaping (Int) -> Int, _ x: (Int) -> Int) { } // expected-error{{invalid redeclaration of 'escaping'}} |
| func escaping(_ a: @escaping (Int) -> Int, _ x: @escaping (Int) -> Int) { } // expected-error{{invalid redeclaration of 'escaping'}} |
| |
| struct Escaping { |
| func escaping(_ x: @escaping (Int) -> Int) { } // expected-note{{previously declared}} |
| func escaping(_ x: (Int) -> Int) { } // expected-error{{invalid redeclaration of 'escaping'}} |
| func escaping(a: Int, _ x: @escaping (Int) -> Int) { } // expected-note{{previously declared}} |
| func escaping(a: Int, _ x: (Int) -> Int) { } // expected-error{{invalid redeclaration of 'escaping(a:_:)'}} |
| } |
| |
| // @autoclosure |
| func autoclosure(f: () -> Int) { } |
| func autoclosure(f: @autoclosure () -> Int) { } |
| |
| // inout |
| func inout2(x: Int) { } |
| func inout2(x: inout Int) { } |
| |
| // optionals |
| func optional(x: Int?) { } // expected-note{{previously declared}} |
| func optional(x: Int!) { } // expected-error{{invalid redeclaration of 'optional(x:)'}} |
| |
| func optionalInOut(x: inout Int?) { } // expected-note{{previously declared}} |
| func optionalInOut(x: inout Int!) { } // expected-error{{invalid redeclaration of 'optionalInOut(x:)}} |
| |
| class optionalOverloads { |
| class func optionalInOut(x: inout Int?) { } // expected-note{{previously declared}} |
| class func optionalInOut(x: inout Int!) { } // expected-error{{invalid redeclaration of 'optionalInOut(x:)'}} |
| |
| func optionalInOut(x: inout Int?) { } // expected-note{{previously declared}} |
| func optionalInOut(x: inout Int!) { } // expected-error{{invalid redeclaration of 'optionalInOut(x:)}} |
| } |
| |
| func optional_3() -> Int? { } // expected-note{{previously declared}} |
| func optional_3() -> Int! { } // expected-error{{invalid redeclaration of 'optional_3()'}} |
| |
| // mutating / nonmutating |
| protocol ProtocolWithMutating { |
| mutating func test1() // expected-note {{previously declared}} |
| func test1() // expected-error{{invalid redeclaration of 'test1()'}} |
| |
| mutating func test2(_ a: Int?) // expected-note {{previously declared}} |
| func test2(_ a: Int!) // expected-error{{invalid redeclaration of 'test2'}} |
| |
| mutating static func classTest1() // expected-error {{static functions must not be declared mutating}} {{3-12=}} expected-note {{previously declared}} |
| static func classTest1() // expected-error{{invalid redeclaration of 'classTest1()'}} |
| } |
| |
| struct StructWithMutating { |
| mutating func test1() { } // expected-note {{previously declared}} |
| func test1() { } // expected-error{{invalid redeclaration of 'test1()'}} |
| |
| mutating func test2(_ a: Int?) { } // expected-note {{previously declared}} |
| func test2(_ a: Int!) { } // expected-error{{invalid redeclaration of 'test2'}} |
| } |
| |
| enum EnumWithMutating { |
| mutating func test1() { } // expected-note {{previously declared}} |
| func test1() { } // expected-error{{invalid redeclaration of 'test1()'}} |
| } |
| |
| protocol ProtocolWithAssociatedTypes { |
| associatedtype t |
| // expected-note@-1 {{previously declared}} |
| // expected-note@-2 {{previously declared}} |
| |
| static var t: Int { get } // expected-error{{invalid redeclaration of 't'}} |
| static func t() // expected-error{{invalid redeclaration of 't()'}} |
| |
| associatedtype u |
| associatedtype v |
| |
| // Instance requirements are fine. |
| var t: Int { get } |
| func u() |
| mutating func v() |
| |
| associatedtype W |
| func foo<W>(_ x: W) |
| } |
| |
| // <rdar://problem/21783216> Ban members named Type and Protocol without backticks |
| // https://twitter.com/jadengeller/status/619989059046240256 |
| protocol r21783216a { |
| // expected-error @+2 {{type member must not be named 'Type', since it would conflict with the 'foo.Type' expression}} |
| // expected-note @+1 {{if this name is unavoidable, use backticks to escape it}} {{18-22=`Type`}} |
| associatedtype Type |
| |
| // expected-error @+2 {{type member must not be named 'Protocol', since it would conflict with the 'foo.Protocol' expression}} |
| // expected-note @+1 {{if this name is unavoidable, use backticks to escape it}} {{18-26=`Protocol`}} |
| associatedtype Protocol |
| } |
| |
| protocol r21783216b { |
| associatedtype `Type` // ok |
| associatedtype `Protocol` // ok |
| } |
| |
| struct SR7249<T> { |
| var x: T { fatalError() } // expected-note {{previously declared}} |
| var y: Int // expected-note {{previously declared}} |
| var z: Int // expected-note {{previously declared}} |
| } |
| |
| extension SR7249 { |
| var x: Int { fatalError() } // expected-warning{{redeclaration of 'x' is deprecated and will be an error in Swift 5}} |
| var y: T { fatalError() } // expected-warning{{redeclaration of 'y' is deprecated and will be an error in Swift 5}} |
| var z: Int { fatalError() } // expected-error{{invalid redeclaration of 'z'}} |
| } |
| |
| // A constrained extension is okay. |
| extension SR7249 where T : P1 { |
| var x: Int { fatalError() } |
| var y: T { fatalError() } |
| var z: Int { fatalError() } |
| } |
| |
| protocol P3 { |
| var i: Int { get } |
| subscript(i: Int) -> String { get } |
| } |
| |
| extension P3 { |
| var i: Int { return 0 } |
| subscript(i: Int) -> String { return "" } |
| } |
| |
| struct SR7250<T> : P3 {} |
| |
| extension SR7250 where T : P3 { |
| var i: Int { return 0 } |
| subscript(i: Int) -> String { return "" } |
| } |
| |
| // SR-10084 |
| |
| struct SR_10084_S { |
| let name: String |
| } |
| |
| enum SR_10084_E { |
| case foo(SR_10084_S) // expected-note {{'foo' previously declared here}} |
| |
| static func foo(_ name: String) -> SR_10084_E { // Okay |
| return .foo(SR_10084_S(name: name)) |
| } |
| |
| func foo(_ name: Bool) -> SR_10084_E { // Okay |
| return .foo(SR_10084_S(name: "Test")) |
| } |
| |
| static func foo(_ value: SR_10084_S) -> SR_10084_E { // expected-error {{invalid redeclaration of 'foo'}} |
| return .foo(value) |
| } |
| } |
| |
| enum SR_10084_E_1 { |
| static func foo(_ name: String) -> SR_10084_E_1 { // Okay |
| return .foo(SR_10084_S(name: name)) |
| } |
| |
| static func foo(_ value: SR_10084_S) -> SR_10084_E_1 { // expected-note {{'foo' previously declared here}} |
| return .foo(value) |
| } |
| |
| case foo(SR_10084_S) // expected-error {{invalid redeclaration of 'foo'}} |
| } |
| |
| enum SR_10084_E_2 { |
| case fn(() -> Void) // expected-note {{'fn' previously declared here}} |
| |
| static func fn(_ x: @escaping () -> Void) -> SR_10084_E_2 { // expected-error {{invalid redeclaration of 'fn'}} |
| fatalError() |
| } |
| |
| static func fn(_ x: @escaping () -> Int) -> SR_10084_E_2 { // Okay |
| fatalError() |
| } |
| |
| static func fn(_ x: @escaping () -> Bool) -> SR_10084_E_2 { // Okay |
| fatalError() |
| } |
| } |
| |
| enum SR_10084_E_3 { |
| protocol A {} //expected-error {{protocol 'A' cannot be nested inside another declaration}} // expected-note {{'A' previously declared here}} |
| case A // expected-error {{invalid redeclaration of 'A'}} |
| } |
| |
| enum SR_10084_E_4 { |
| class B {} // expected-note {{'B' previously declared here}} |
| case B // expected-error {{invalid redeclaration of 'B'}} |
| } |
| |
| enum SR_10084_E_5 { |
| struct C {} // expected-note {{'C' previously declared here}} |
| case C // expected-error {{invalid redeclaration of 'C'}} |
| } |
| |
| enum SR_10084_E_6 { |
| case D // expected-note {{'D' previously declared here}} |
| protocol D {} //expected-error {{protocol 'D' cannot be nested inside another declaration}} // expected-error {{invalid redeclaration of 'D'}} |
| } |
| |
| enum SR_10084_E_7 { |
| case E // expected-note {{'E' previously declared here}} |
| class E {} // expected-error {{invalid redeclaration of 'E'}} |
| } |
| |
| enum SR_10084_E_8 { |
| case F // expected-note {{'F' previously declared here}} |
| struct F {} // expected-error {{invalid redeclaration of 'F'}} |
| } |
| |
| enum SR_10084_E_9 { |
| case A // expected-note {{found this candidate}} // expected-note {{'A' previously declared here}} |
| static let A: SR_10084_E_9 = .A // expected-note {{found this candidate}} // expected-error {{invalid redeclaration of 'A'}} // expected-error {{ambiguous use of 'A'}} |
| } |
| |
| enum SR_10084_E_10 { |
| static let A: SR_10084_E_10 = .A // expected-note {{found this candidate}} // expected-note {{'A' previously declared here}} // expected-error {{ambiguous use of 'A'}} |
| case A // expected-note {{found this candidate}} // expected-error {{invalid redeclaration of 'A'}} |
| } |
| |
| enum SR_10084_E_11 { |
| case A // expected-note {{found this candidate}} // expected-note {{'A' previously declared here}} |
| static var A: SR_10084_E_11 = .A // expected-note {{found this candidate}} // expected-error {{invalid redeclaration of 'A'}} // expected-error {{ambiguous use of 'A'}} |
| } |
| |
| enum SR_10084_E_12 { |
| static var A: SR_10084_E_12 = .A // expected-note {{found this candidate}} // expected-note {{'A' previously declared here}} // expected-error {{ambiguous use of 'A'}} |
| case A // expected-note {{found this candidate}} // expected-error {{invalid redeclaration of 'A'}} |
| } |
| |
| enum SR_10084_E_13 { |
| case X // expected-note {{'X' previously declared here}} |
| struct X<T> {} // expected-error {{invalid redeclaration of 'X'}} |
| } |
| |
| enum SR_10084_E_14 { |
| struct X<T> {} // expected-note {{'X' previously declared here}} |
| case X // expected-error {{invalid redeclaration of 'X'}} |
| } |
| |
| enum SR_10084_E_15 { |
| case Y // expected-note {{'Y' previously declared here}} |
| typealias Y = Int // expected-error {{invalid redeclaration of 'Y'}} |
| } |
| |
| enum SR_10084_E_16 { |
| typealias Z = Int // expected-note {{'Z' previously declared here}} |
| case Z // expected-error {{invalid redeclaration of 'Z'}} |
| } |