mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
67 lines
2.1 KiB
Swift
67 lines
2.1 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: split-file %s %t
|
|
|
|
// RUN: %target-swift-frontend-typecheck -verify -disable-availability-checking %t/main.swift -package-name myPkg
|
|
// RUN: %target-swift-frontend-typecheck -verify -disable-availability-checking %t/A.swift -package-name myPkg
|
|
// RUN: %target-swift-frontend-typecheck -verify -disable-availability-checking %t/B.swift -package-name myPkg
|
|
// RUN: %target-swift-frontend-typecheck -verify -disable-availability-checking %t/D.swift -package-name myPkg
|
|
// RUN: not %target-swift-frontend-typecheck -verify -disable-availability-checking %t/C.swift -package-name myPkg 2>&1 | %FileCheck %s
|
|
|
|
//--- main.swift
|
|
package(set) public var a: String // should pass when `package` modifier is used at top level decls
|
|
public package(set) var b: String
|
|
package let c: Int
|
|
package var d: Int
|
|
package func f() {}
|
|
package func package() {}
|
|
package()
|
|
|
|
//--- A.swift
|
|
package class package { // package can be a type name
|
|
package init() {}
|
|
package var package: String? // package can be a var name
|
|
}
|
|
|
|
package class pkg {
|
|
package init() {}
|
|
package func package() {} // package can be a func name
|
|
package func package(arg: Int) {}
|
|
package func package(_ arg: Double) {}
|
|
}
|
|
|
|
public class MyClass {
|
|
var myVar1: package = package()
|
|
var myVar2: pkg = pkg()
|
|
func myFunc() {
|
|
_ = myVar1.package
|
|
myVar2.package()
|
|
myVar2.package(arg: 1)
|
|
myVar2.package(2.0)
|
|
}
|
|
}
|
|
|
|
//--- B.swift
|
|
public class Foo {
|
|
package(set) public var x: String?
|
|
public package(set) var y: Int?
|
|
}
|
|
|
|
//--- C.swift
|
|
public class Bar {
|
|
package package(set) package: String? // CHECK: warning: 'package(set)' modifier is redundant for a package var
|
|
package(set) package package: String? // CHECK: warning: 'package(set)' modifier is redundant for a package var
|
|
}
|
|
|
|
//--- D.swift
|
|
enum MyColor {
|
|
case red, green, blue
|
|
}
|
|
let packages: [MyColor] = [MyColor.red, MyColor.blue].compactMap { package in
|
|
switch package {
|
|
case .blue: return package // Should not error when `case` follows the `package` contextual keyword
|
|
case .red: return package
|
|
default: return nil
|
|
}
|
|
}
|
|
|