// RUN: %target-typecheck-verify-swift enum Colors { case blue case red } let globalString = "" let globalInt = 2 let globalColor = Colors.blue func giveMeBlue() -> Colors { return .blue } @propertyWrapper struct Wrapper { let key: String var wrappedValue: Value? { get { return nil } set { } } init(_ key: _const String) {self.key = key } init(_ key: _const Int) {self.key = "" } init(_ key: _const Colors) { self.key = ""} } struct WrapperAdopters { @Wrapper(3) var wrappedVar_correct_1 @Wrapper("") var wrappedVar_correct_2 @Wrapper(.blue) var wrappedVar_correct_3 @Wrapper(Colors.blue) var wrappedVar_correct_4 } struct WrapperAdopters_incorrect { @Wrapper(globalInt) // expected-error{{expect a compile-time constant literal}} var wrappedVar_incorrect_1 @Wrapper(globalString) // expected-error{{expect a compile-time constant literal}} var wrappedVar_incorrect_2 @Wrapper(globalColor) // expected-error{{expect a compile-time constant literal}} var wrappedVar_incorrect_3 @Wrapper(giveMeBlue()) // expected-error{{expect a compile-time constant literal}} var wrappedVar_incorrect_4 }