From 1e6e6e9634a44106f79d21d98d11288712a26305 Mon Sep 17 00:00:00 2001 From: Pavel Yaskevich Date: Fri, 18 Nov 2022 15:22:12 -0800 Subject: [PATCH] [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). --- test/Constraints/result_builder_diags.swift | 8 ++- .../result_builder_invalid_vars.swift | 51 ------------------ test/Constraints/result_builder_vars.swift | 54 +++++++++++++++++++ 3 files changed, 57 insertions(+), 56 deletions(-) delete mode 100644 test/Constraints/result_builder_invalid_vars.swift create mode 100644 test/Constraints/result_builder_vars.swift diff --git a/test/Constraints/result_builder_diags.swift b/test/Constraints/result_builder_diags.swift index d229b973e8d..894d65747d4 100644 --- a/test/Constraints/result_builder_diags.swift +++ b/test/Constraints/result_builder_diags.swift @@ -6,7 +6,7 @@ enum Either { } @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 { @@ -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 } diff --git a/test/Constraints/result_builder_invalid_vars.swift b/test/Constraints/result_builder_invalid_vars.swift deleted file mode 100644 index e49cdb600d7..00000000000 --- a/test/Constraints/result_builder_invalid_vars.swift +++ /dev/null @@ -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 { - return t - } -} - -func dummy(@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}} - () -} diff --git a/test/Constraints/result_builder_vars.swift b/test/Constraints/result_builder_vars.swift new file mode 100644 index 00000000000..dd862b2c957 --- /dev/null +++ b/test/Constraints/result_builder_vars.swift @@ -0,0 +1,54 @@ +// RUN: %target-typecheck-verify-swift + +@resultBuilder +struct DummyBuilder { + static func buildBlock(_ t: T) -> T { + return t + } +} + +func dummy(@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}} + () +}