Files
swift-mirror/test/decl/var/property_wrapper_aliases.swift
2020-02-17 20:04:33 -05:00

48 lines
1.4 KiB
Swift

// RUN: %target-typecheck-verify-swift
// expect-no-diagnostics
@propertyDelegate // expected-warning{{'@propertyDelegate' has been renamed to '@propertyWrapper'}}{{2-18=propertyWrapper}}
struct Delegate<T> {
var wrappedValue: T
}
@_propertyWrapper // expected-warning{{'@_propertyWrapper' has been renamed to '@propertyWrapper'}}{{2-18=propertyWrapper}}
struct Wrapper<T> {
var wrappedValue: T
}
@propertyWrapper
struct OldWrapper<T> {
var wrappedValue: T
var wrapperValue: Wrapper<T> { // expected-warning{{property wrapper's 'wrapperValue' property should be renamed to 'projectedValue'; use of 'wrapperValue' is deprecated}}{{7-19=projectedValue}}
return Wrapper(wrappedValue: wrappedValue)
}
}
@propertyWrapper
struct OldWrapperWithInit<T> {
var wrappedValue: T
init(initialValue: T) { // expected-warning{{property wrapper's 'init(initialValue:)' should be renamed to 'init(wrappedValue:)'; use of 'init(initialValue:)' is deprecated}}{{8-8=wrappedValue }}
self.wrappedValue = initialValue
}
}
@propertyWrapper
struct OldWrapperWithInit2<T> {
var wrappedValue: T
init(initialValue value: T) { // expected-warning{{property wrapper's 'init(initialValue:)' should be renamed to 'init(wrappedValue:)'; use of 'init(initialValue:)' is deprecated}}{{8-20=wrappedValue}}
self.wrappedValue = value
}
}
struct TestOldWrapperInits {
@OldWrapperWithInit var x = 17
@OldWrapperWithInit2 var y = "Hello"
}