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
|
@resultBuilder
|
||||||
struct TupleBuilder { // expected-note 3 {{struct 'TupleBuilder' declared here}}
|
struct TupleBuilder { // expected-note {{struct 'TupleBuilder' declared here}}
|
||||||
static func buildBlock() -> () { }
|
static func buildBlock() -> () { }
|
||||||
|
|
||||||
static func buildBlock<T1>(_ t1: T1) -> T1 {
|
static func buildBlock<T1>(_ t1: T1) -> T1 {
|
||||||
@@ -99,15 +99,13 @@ func testDiags() {
|
|||||||
tuplify(true) { _ in
|
tuplify(true) { _ in
|
||||||
17
|
17
|
||||||
let x = 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
|
x + 25
|
||||||
}
|
}
|
||||||
|
|
||||||
tuplify(true) { _ in
|
tuplify(true) { _ in
|
||||||
17
|
17
|
||||||
let y: Int, z: String
|
let y: Int, z: String // Ok
|
||||||
// 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#>}}
|
|
||||||
y + 25
|
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