mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
[BuilderTransform] NFC: Adjust variable declaration tests
With AST transform enabled by default most of the previously invalid declarations became valid (due to SE-0373 being implemented only for AST transform).
This commit is contained in:
committed by
Pavel Yaskevich
parent
b01d21b1ec
commit
1e6e6e9634
@@ -6,7 +6,7 @@ enum Either<T,U> {
|
||||
}
|
||||
|
||||
@resultBuilder
|
||||
struct TupleBuilder { // expected-note 3 {{struct 'TupleBuilder' declared here}}
|
||||
struct TupleBuilder { // expected-note {{struct 'TupleBuilder' declared here}}
|
||||
static func buildBlock() -> () { }
|
||||
|
||||
static func buildBlock<T1>(_ t1: T1) -> T1 {
|
||||
@@ -99,15 +99,13 @@ func testDiags() {
|
||||
tuplify(true) { _ in
|
||||
17
|
||||
let x = 17
|
||||
let y: Int // expected-error{{local variable 'y' requires explicit initializer to be used with result builder 'TupleBuilder'}} {{15-15= = <#value#>}}
|
||||
let y: Int // Ok
|
||||
x + 25
|
||||
}
|
||||
|
||||
tuplify(true) { _ in
|
||||
17
|
||||
let y: Int, z: String
|
||||
// expected-error@-1 {{local variable 'y' requires explicit initializer to be used with result builder 'TupleBuilder'}} {{15-15= = <#value#>}}
|
||||
// expected-error@-2 {{local variable 'z' requires explicit initializer to be used with result builder 'TupleBuilder'}} {{26-26= = <#value#>}}
|
||||
let y: Int, z: String // Ok
|
||||
y + 25
|
||||
}
|
||||
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
// RUN: %target-typecheck-verify-swift
|
||||
|
||||
@resultBuilder
|
||||
struct DummyBuilder { // expected-note 5 {{struct 'DummyBuilder' declared here}}
|
||||
static func buildBlock<T>(_ t: T) -> T {
|
||||
return t
|
||||
}
|
||||
}
|
||||
|
||||
func dummy<T>(@DummyBuilder _: () -> T) {}
|
||||
|
||||
dummy {
|
||||
var computedVar: Int { return 123 } // expected-error {{cannot declare local computed variable in result builder}}
|
||||
()
|
||||
}
|
||||
|
||||
dummy {
|
||||
lazy var lazyVar: Int = 123 // expected-error {{cannot declare local lazy variable in result builder}}
|
||||
()
|
||||
}
|
||||
|
||||
dummy {
|
||||
var observedVar: Int = 123 { // expected-error {{cannot declare local observed variable in result builder}}
|
||||
didSet {}
|
||||
}
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
dummy {
|
||||
var observedVar: Int = 123 { // expected-error {{cannot declare local observed variable in result builder}}
|
||||
willSet {}
|
||||
}
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
@propertyWrapper struct Wrapper {
|
||||
var wrappedValue: Int
|
||||
}
|
||||
|
||||
dummy {
|
||||
@Wrapper var wrappedVar: Int = 123 // expected-error {{cannot declare local wrapped variable in result builder}}
|
||||
()
|
||||
}
|
||||
|
||||
dummy {
|
||||
@resultBuilder var attributedVar: Int = 123 // expected-error {{@resultBuilder' attribute cannot be applied to this declaration}}
|
||||
// expected-warning@-1 {{variable 'attributedVar' was never used; consider replacing with '_' or removing it}}
|
||||
()
|
||||
}
|
||||
54
test/Constraints/result_builder_vars.swift
Normal file
54
test/Constraints/result_builder_vars.swift
Normal file
@@ -0,0 +1,54 @@
|
||||
// RUN: %target-typecheck-verify-swift
|
||||
|
||||
@resultBuilder
|
||||
struct DummyBuilder {
|
||||
static func buildBlock<T>(_ t: T) -> T {
|
||||
return t
|
||||
}
|
||||
}
|
||||
|
||||
func dummy<T>(@DummyBuilder _: () -> T) {}
|
||||
|
||||
dummy {
|
||||
var computedVar: Int { return 123 }
|
||||
()
|
||||
}
|
||||
|
||||
dummy {
|
||||
lazy var lazyVar: Int = 123
|
||||
()
|
||||
}
|
||||
|
||||
dummy {
|
||||
var observedVar: Int = 123 {
|
||||
// expected-warning@-1 {{variable 'observedVar' was never used; consider replacing with '_' or removing it}}
|
||||
didSet {}
|
||||
}
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
dummy {
|
||||
var observedVar: Int = 123 {
|
||||
// expected-warning@-1 {{variable 'observedVar' was never used; consider replacing with '_' or removing it}}
|
||||
willSet {}
|
||||
}
|
||||
|
||||
()
|
||||
}
|
||||
|
||||
@propertyWrapper struct Wrapper {
|
||||
var wrappedValue: Int
|
||||
}
|
||||
|
||||
dummy {
|
||||
@Wrapper var wrappedVar: Int = 123
|
||||
()
|
||||
}
|
||||
|
||||
dummy {
|
||||
@resultBuilder var attributedVar: Int = 123
|
||||
// expected-error@-1 {{'@resultBuilder' attribute cannot be applied to this declaration}}
|
||||
// expected-warning@-2 {{variable 'attributedVar' was never used; consider replacing with '_' or removing it}}
|
||||
()
|
||||
}
|
||||
Reference in New Issue
Block a user