diff --git a/test/Concurrency/task_local.swift b/test/Concurrency/task_local.swift index d7818271ef4..12b6765632f 100644 --- a/test/Concurrency/task_local.swift +++ b/test/Concurrency/task_local.swift @@ -7,6 +7,11 @@ struct TL { @TaskLocal // expected-note{{in expansion of macro 'TaskLocal' on static property 'number' here}} static var number: Int = 0 + /* + expected-expansion@-2:29{{ + expected-note@1:8{{change 'let' to 'var' to make it mutable}} + }} + */ @TaskLocal static var someNil: Int? @@ -14,6 +19,11 @@ struct TL { // expected-note@+1{{in expansion of macro 'TaskLocal' on static property 'noValue' here}} @TaskLocal // expected-error{{@TaskLocal' property must have default value, or be optional}} static var noValue: Int // expected-note{{'noValue' declared here}} + /* + expected-expansion@-2:26{{ + expected-error@3:9{{cannot find '$noValue' in scope; did you mean 'noValue'?}} + }} + */ @TaskLocal // expected-error{{'@TaskLocal' can only be applied to 'static' property}} var notStatic: String? diff --git a/test/Distributed/Macros/distributed_macro_expansion_DistributedProtocol_errors.swift b/test/Distributed/Macros/distributed_macro_expansion_DistributedProtocol_errors.swift index 9d776369a5c..8759d4c906d 100644 --- a/test/Distributed/Macros/distributed_macro_expansion_DistributedProtocol_errors.swift +++ b/test/Distributed/Macros/distributed_macro_expansion_DistributedProtocol_errors.swift @@ -30,6 +30,14 @@ distributed actor Caplin { protocol Fail: DistributedActor { distributed func method() -> String } +/* +expected-expansion@-2:2{{ + expected-error@1:19{{distributed actor '$Fail' does not declare ActorSystem it can be used with}} + expected-note@1:13{{you can provide a module-wide default actor system by declaring:}} + expected-error@1:19{{type '$Fail' does not conform to protocol 'DistributedActor'}} + expected-note@1:19{{add stubs for conformance}} +}} +*/ @Resolvable // expected-note2{{in expansion of macro 'Resolvable' on protocol 'SomeRoot' here}} public protocol SomeRoot: DistributedActor, Sendable @@ -39,3 +47,9 @@ public protocol SomeRoot: DistributedActor, Sendable static var staticValue: String { get } var value: String { get } } +/* +expected-expansion@-2:2{{ + expected-error@1:27{{type '$SomeRoot' does not conform to protocol 'SomeRoot'}} + expected-note@1:27{{add stubs for conformance}} +}} +*/ diff --git a/test/Macros/Inputs/top_level_freestanding_other.swift b/test/Macros/Inputs/top_level_freestanding_other.swift index e7539e3f6f0..7c3ac0214f2 100644 --- a/test/Macros/Inputs/top_level_freestanding_other.swift +++ b/test/Macros/Inputs/top_level_freestanding_other.swift @@ -13,8 +13,14 @@ func deprecated() -> Int { 0 } var globalVar3 = #stringify({ deprecated() }) // expected-note@-1 {{in expansion of macro 'stringify' here}} // expected-warning@-2{{'deprecated()' is deprecated}} +// expected-expansion@-3:18{{ +// expected-warning@2:9{{'deprecated()' is deprecated}} +// }} var globalVar4 = #stringify({ deprecated() }) // expected-note@-1 {{in expansion of macro 'stringify' here}} // expected-warning@-2{{'deprecated()' is deprecated}} +// expected-expansion@-3:18{{ +// expected-warning@2:9{{'deprecated()' is deprecated}} +// }} diff --git a/test/Macros/accessor_macros.swift b/test/Macros/accessor_macros.swift index e9da34f84fa..df722c8d535 100644 --- a/test/Macros/accessor_macros.swift +++ b/test/Macros/accessor_macros.swift @@ -99,6 +99,11 @@ struct MyBrokenStruct { // expected-note@+1 2{{in expansion of macro 'myPropertyWrapper' on property 'birthDate' here}} @myPropertyWrapper var birthDate: Date? { + /* + expected-expansion@-2:25{{ + expected-error@1:1{{variable already has a getter}} + }} + */ // CHECK-DIAGS: variable already has a getter // CHECK-DIAGS: in expansion of macro // CHECK-DIAGS: previous definition of getter here @@ -153,6 +158,12 @@ struct HasStoredTests { // expected-error@-1{{expansion of macro 'MakeComputedSneakily()' produced an unexpected getter}} // expected-note@-2 2{{in expansion of macro}} // expected-note@-3 2{{'z' declared here}} + /* + expected-expansion@-5:36{{ + expected-error@3:9{{cannot find '_z' in scope; did you mean 'z'?}} + expected-error@6:9{{cannot find '_z' in scope; did you mean 'z'?}} + }} + */ #endif } diff --git a/test/Macros/macro_expand.swift b/test/Macros/macro_expand.swift index 074fcb5a6bd..5480b735b03 100644 --- a/test/Macros/macro_expand.swift +++ b/test/Macros/macro_expand.swift @@ -73,11 +73,11 @@ macro NotCovered() = #externalMacro(module: "MacroDefinition", type: "InvalidMac struct MemberNotCovered { #NotCovered // expected-note@-1 {{in expansion of macro 'NotCovered' here}} - - // CHECK-DIAGS: error: declaration name 'value' is not covered by macro 'NotCovered' - // CHECK-DIAGS: CONTENTS OF FILE @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX[[@LINE-5]]_2_33_4361AD9339943F52AE6186DD51E04E91Ll10NotCoveredfMf_.swift - // CHECK-DIAGS: var value: Int - // CHECK-DIAGS: END CONTENTS OF FILE + /* + expected-expansion@-3:3 {{ + expected-error@1:5{{declaration name 'value' is not covered by macro 'NotCovered'}} + }} + */ } @attached(peer) @@ -86,24 +86,29 @@ macro Invalid() = #externalMacro(module: "MacroDefinition", type: "InvalidMacro" @Invalid struct Bad {} // expected-note@-2 18 {{in expansion of macro 'Invalid' on struct 'Bad' here}} +/* +expected-expansion@-3:14 {{ + expected-error@1:8{{macro expansion cannot introduce import}} + expected-error@3:17{{macro expansion cannot introduce precedence group}} + expected-error@6:25{{macro 'myMacro()' requires a definition}} + expected-error@6:25{{macro expansion cannot introduce macro}} + expected-error@8:1{{macro expansion cannot introduce extension}} + expected-error@11:1{{macro expansion cannot introduce '@main' type}} + expected-error@12:8{{declaration name 'MyMain' is not covered by macro 'Invalid'}} + expected-error@17:11{{declaration name 'Array' is not covered by macro 'Invalid'}} + expected-error@19:11{{declaration name 'Dictionary' is not covered by macro 'Invalid'}} + expected-error@21:11{{macro expansion cannot introduce default literal type 'BooleanLiteralType'}} + expected-error@23:11{{macro expansion cannot introduce default literal type 'ExtendedGraphemeClusterType'}} + expected-error@25:11{{macro expansion cannot introduce default literal type 'FloatLiteralType'}} + expected-error@27:11{{macro expansion cannot introduce default literal type 'IntegerLiteralType'}} + expected-error@29:11{{macro expansion cannot introduce default literal type 'StringLiteralType'}} + expected-error@31:11{{macro expansion cannot introduce default literal type 'UnicodeScalarType'}} + expected-error@33:11{{macro expansion cannot introduce default literal type '_ColorLiteralType'}} + expected-error@35:11{{macro expansion cannot introduce default literal type '_ImageLiteralType'}} + expected-error@37:11{{macro expansion cannot introduce default literal type '_FileReferenceLiteralType'}} +}} +*/ -// CHECK-DIAGS: error: macro expansion cannot introduce import -// CHECK-DIAGS: error: macro expansion cannot introduce precedence group -// CHECK-DIAGS: error: macro expansion cannot introduce macro -// CHECK-DIAGS: error: macro expansion cannot introduce extension -// CHECK-DIAGS: error: macro expansion cannot introduce '@main' type -// CHECK-DIAGS: error: declaration name 'MyMain' is not covered by macro 'Invalid' -// CHECK-DIAGS: error: declaration name 'Array' is not covered by macro 'Invalid' -// CHECK-DIAGS: error: declaration name 'Dictionary' is not covered by macro 'Invalid' -// CHECK-DIAGS: error: macro expansion cannot introduce default literal type 'BooleanLiteralType' -// CHECK-DIAGS: error: macro expansion cannot introduce default literal type 'ExtendedGraphemeClusterType' -// CHECK-DIAGS: error: macro expansion cannot introduce default literal type 'FloatLiteralType' -// CHECK-DIAGS: error: macro expansion cannot introduce default literal type 'IntegerLiteralType' -// CHECK-DIAGS: error: macro expansion cannot introduce default literal type 'StringLiteralType' -// CHECK-DIAGS: error: macro expansion cannot introduce default literal type 'UnicodeScalarType' -// CHECK-DIAGS: error: macro expansion cannot introduce default literal type '_ColorLiteralType' -// CHECK-DIAGS: error: macro expansion cannot introduce default literal type '_ImageLiteralType' -// CHECK-DIAGS: error: macro expansion cannot introduce default literal type '_FileReferenceLiteralType' // CHECK-DIAGS: CONTENTS OF FILE @__swiftmacro_9MacroUser3Bad7InvalidfMp_.swift // CHECK-DIAGS: import Swift @@ -132,21 +137,28 @@ struct Bad {} class HasStoredPropertyClassInvalid { #AddStoredProperty((Self.self, 0).1) // expected-note {{in expansion of macro 'AddStoredProperty' here}} - // CHECK-DIAGS: @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX[[@LINE-2]]_2_33_{{.*}}AddStoredPropertyfMf_.swift:1:22: error: covariant 'Self' type cannot be referenced from a stored property initializer + /* + expected-expansion@-2:3 {{ + expected-error@1:22{{covariant 'Self' type cannot be referenced from a stored property initializer}} + }} + */ } // Redeclaration checking should behave as though expansions are part of the // source file. struct RedeclChecking { #varValue + /* + expected-expansion@-2:3 {{ + expected-note@1:5{{'value' previously declared here}} + }} + */ // expected-error@+1 {{invalid redeclaration of 'value'}} var value: Int { 0 } } -// CHECK-DIAGS: macro_expand.swift:[[@LINE-3]]:7: error: invalid redeclaration of 'value' -// CHECK-DIAGS: @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX[[@LINE-8]]_2_33_4361AD9339943F52AE6186DD51E04E91Ll8varValuefMf_.swift:1:5: note: 'value' previously declared here -// CHECK-DIAGS: CONTENTS OF FILE @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX[[@LINE-9]]_2_33_4361AD9339943F52AE6186DD51E04E91Ll8varValuefMf_.swift: +// CHECK-DIAGS: CONTENTS OF FILE @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX[[@LINE-12]]_2_33_4361AD9339943F52AE6186DD51E04E91Ll8varValuefMf_.swift: // CHECK-DIAGS: var value: Int { // CHECK-DIAGS: 1 // CHECK-DIAGS: } @@ -159,11 +171,19 @@ public macro ThrowCancellation() = #externalMacro(module: "MacroDefinition", typ // error mismatch. @ThrowCancellation // expected-note {{in expansion of macro 'ThrowCancellation' on global function 'issue79039()' here}} func issue79039() throws(DecodingError) -// CHECK-DIAGS: @__swiftmacro_9MacroUser10issue7903917ThrowCancellationfMb_.swift:2:11: error: thrown expression type 'CancellationError' cannot be converted to error type 'DecodingError' +/* +expected-expansion@-2:39 {{ + expected-error@2:11{{thrown expression type 'CancellationError' cannot be converted to error type 'DecodingError'}} +}} +*/ @ThrowCancellation // expected-note {{in expansion of macro 'ThrowCancellation' on global function 'issue79039_2()' here}} func issue79039_2() throws(DecodingError) {} -// CHECK-DIAGS: @__swiftmacro_9MacroUser12issue79039_217ThrowCancellationfMb_.swift:2:11: error: thrown expression type 'CancellationError' cannot be converted to error type 'DecodingError' +/* +expected-expansion@-2:43 {{ + expected-error@2:11{{thrown expression type 'CancellationError' cannot be converted to error type 'DecodingError'}} +}} +*/ #endif @freestanding(declaration) @@ -176,16 +196,28 @@ macro AccidentalCodeItem() = #externalMacro(module: "MacroDefinition", type: "Fa func invalidDeclarationMacro() { #accidentalCodeItem // expected-note@-1 {{in expansion of macro 'accidentalCodeItem' here}} - // CHECK-DIAGS: @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX[[@LINE-3]]_2_18accidentalCodeItemfMf_.swift:1:1: error: expected macro expansion to produce a declaration + /* + expected-expansion@-3:3 {{ + expected-error@1:1{{expected macro expansion to produce a declaration}} + }} + */ @AccidentalCodeItem struct S {} // expected-note@-1 {{in expansion of macro 'AccidentalCodeItem' on struct 'S' here}} - // CHECK-DIAGS: @__swiftmacro_9MacroUser018invalidDeclarationA0yyF5S_$l018AccidentalCodeItemfMp_.swift:1:1: error: expected macro expansion to produce a declaration + /* + expected-expansion@-3:34 {{ + expected-error@1:1{{expected macro expansion to produce a declaration}} + }} + */ do { @AccidentalCodeItem struct S {} // expected-note@-1 {{in expansion of macro 'AccidentalCodeItem' on struct 'S' here}} - // CHECK-DIAGS: @__swiftmacro_9MacroUser018invalidDeclarationA0yyF5S_$l118AccidentalCodeItemfMp_.swift:1:1: error: expected macro expansion to produce a declaration + /* + expected-expansion@-3:36 {{ + expected-error@1:1{{expected macro expansion to produce a declaration}} + }} + */ } } #endif @@ -323,9 +355,14 @@ func testNested() { struct Nested { } _ = #stringify(#assertAny(Nested())) // expected-note@-1 {{in expansion of macro 'stringify' here}} -// CHECK-DIAGS-NOT: error: cannot convert value of type 'Nested' to expected argument type 'Bool' -// CHECK-DIAGS: @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX{{.*}}_9stringifyfMf_9assertAnyfMf_.swift:1:8: error: cannot convert value of type 'Nested' to expected argument type 'Bool' -// CHECK-DIAGS-NOT: error: cannot convert value of type 'Nested' to expected argument type 'Bool' + /* + expected-expansion@-3:7 {{ + expected-note@1:2{{in expansion of macro 'assertAny' here}} + expected-expansion@1:2{{ + expected-error@1:8{{cannot convert value of type 'Nested' to expected argument type 'Bool'}} + }} + }} + */ // PRETTY-DIAGS: 1:8: error: cannot convert value of type 'Nested' to expected argument type 'Bool' // PRETTY-DIAGS: macro_expand.swift:{{.*}}:39: note: expanded code originates here @@ -344,8 +381,15 @@ func testStringifyWithThrows() throws { #if TEST_DIAGNOSTICS // FIXME: Lots of duplicate notes here _ = #stringify(maybeThrowing()) // expected-note 4{{in expansion of macro 'stringify' here}} + /* + expected-expansion@-2:7 {{ + expected-error@1:2{{call can throw but is not marked with 'try'}} + expected-note@1:2{{did you mean to disable error propagation?}} + expected-note@1:2{{did you mean to handle error as optional value?}} + expected-note@1:2{{did you mean to use 'try'?}} + }} + */ - // CHECK-DIAGS: @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX{{.*}}_9stringifyfMf1_.swift:1:2: error: call can throw but is not marked with 'try' #endif // The macro adds the 'try' for us. @@ -385,14 +429,18 @@ func testAddBlocker(a: Int, b: Int, c: Int, oa: OnlyAdds) { _ = #addBlocker(oa + oa) // expected-error{{blocked an add; did you mean to subtract? (from macro 'addBlocker')}} // expected-note@-1{{in expansion of macro 'addBlocker' here}} // expected-note@-2{{use '-'}}{{22-23=-}} - - // CHECK-DIAGS: @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX{{.*}}_10addBlockerfMf1_.swift:1:4: error: binary operator '-' cannot be applied to two 'OnlyAdds' operands [] [] - // CHECK-DIAGS: CONTENTS OF FILE @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX{{.*}}_10addBlockerfMf1_.swift: - // CHECK-DIAGS-NEXT: Original source range: {{.*}}macro_expand.swift:[[@LINE-6]]:7 - {{.*}}macro_expand.swift:[[@LINE-6]]:27 - // CHECK-DIAGS-NEXT: oa - oa - // CHECK-DIAGS-NEXT: END CONTENTS OF FILE + /* + expected-expansion@-4:7 {{ + expected-error@1:4{{binary operator '-' cannot be applied to two 'OnlyAdds' operands}} + }} + */ _ = #addBlocker({ // expected-note{{in expansion of macro 'addBlocker' here}} + /* + expected-expansion@-2:7 {{ + expected-error@9:16{{referencing operator function '-' on 'FloatingPoint' requires that 'OnlyAdds' conform to 'FloatingPoint'}} + }} + */ print("hello") print(oa + oa) // expected-error{{blocked an add; did you mean to subtract? (from macro 'addBlocker')}} @@ -403,7 +451,13 @@ func testAddBlocker(a: Int, b: Int, c: Int, oa: OnlyAdds) { // Check recursion. #recurse(false) // okay - #recurse(true) // expected-note{{in expansion of macro 'recurse' here}} + #recurse(true) + /* + expected-expansion@-2:3 {{ + expected-error@1:1{{recursive expansion of macro 'recurse'}} + }} + expected-note@-5{{in expansion of macro 'recurse' here}} + */ #endif } @@ -494,6 +548,14 @@ func testFreestandingMacroExpansion() { struct Foo3 { #bitwidthNumberedStructs("BUG", blah: false) // expected-note@-1 4{{in expansion of macro 'bitwidthNumberedStructs' here}} + /* + expected-expansion@-3:5 {{ + expected-error@3:14{{unexpected non-void return value in void function}} + expected-note@3:14{{did you mean to add a return type?}} + expected-error@6:14{{unexpected non-void return value in void function}} + expected-note@6:14{{did you mean to add a return type?}} + }} + */ // CHECK-DIAGS: CONTENTS OF FILE @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX{{.*}}_23bitwidthNumberedStructsfMf_.swift // CHECK-DIAGS: struct BUG { // CHECK-DIAGS: func $s9MacroUser0023macro_expandswift_elFCffMX{{.*}}_23bitwidthNumberedStructsfMf_6methodfMu_() @@ -727,6 +789,11 @@ struct ABIAttrWithFreestandingMacro1 { @abi(#varValue) #varValue // expected-note@-1 {{in expansion of macro 'varValue' here}} + /* + expected-expansion@-3:3 {{ + expected-error@2:6{{cannot use pound literal in '@abi'}} + }} + */ } struct ABIAttrWithFreestandingMacro2 { @@ -759,7 +826,11 @@ func invalidDeclarationMacro2() { func f() { #accidentalCodeItem // expected-note@-1 {{in expansion of macro 'accidentalCodeItem' here}} - // CHECK-DIAGS: @__swiftmacro_9MacroUser0023macro_expandswift_elFCffMX[[@LINE-3]]_6_18accidentalCodeItemfMf_.swift:1:1: error: expected macro expansion to produce a declaration + /* + expected-expansion@-3:7 {{ + expected-error@1:1{{expected macro expansion to produce a declaration}} + }} + */ } } } diff --git a/test/Macros/macro_expand_extensions.swift b/test/Macros/macro_expand_extensions.swift index 7196eea1246..0ee4e20d0e1 100644 --- a/test/Macros/macro_expand_extensions.swift +++ b/test/Macros/macro_expand_extensions.swift @@ -10,9 +10,6 @@ // RUN: %FileCheck -check-prefix=CHECK-DUMP %s < %t/expansions-dump.txt // RUN: %target-typecheck-verify-swift -swift-version 5 -load-plugin-library %t/%target-library-name(MacroDefinition) -module-name MacroUser -DTEST_DIAGNOSTICS -swift-version 5 -I %t -// RUN: not %target-swift-frontend -swift-version 5 -typecheck -load-plugin-library %t/%target-library-name(MacroDefinition) -module-name MacroUser -DTEST_DIAGNOSTICS -serialize-diagnostics-path %t/macro_expand.dia %s -emit-macro-expansion-files no-diagnostics -// RUN: c-index-test -read-diagnostics %t/macro_expand.dia 2>&1 | %FileCheck -check-prefix CHECK-DIAGS %s - // Ensure that we can serialize this file as a module. // RUN: %target-swift-frontend -swift-version 5 -load-plugin-library %t/%target-library-name(MacroDefinition) %s -I %t -disable-availability-checking -emit-module -o %t/MyModule.swiftmodule -enable-testing @@ -137,8 +134,11 @@ macro UndocumentedNamesInExtension() = #externalMacro(module: "MacroDefinition", @UndocumentedNamesInExtension struct S {} // expected-note@-2 {{in expansion of macro 'UndocumentedNamesInExtension' on generic struct 'S' here}} - -// CHECK-DIAGS: error: declaration name 'requirement()' is not covered by macro 'UndocumentedNamesInExtension' +/* +expected-expansion@-3:21 {{ + expected-error@2:15{{declaration name 'requirement()' is not covered by macro 'UndocumentedNamesInExtension'}} +}} +*/ @attached(extension, names: named(requirement)) macro UndocumentedConformanceInExtension() = #externalMacro(module: "MacroDefinition", type: "AlwaysAddConformance") @@ -146,8 +146,11 @@ macro UndocumentedConformanceInExtension() = #externalMacro(module: "MacroDefini @UndocumentedConformanceInExtension struct InvalidConformance {} // expected-note@-2 {{in expansion of macro 'UndocumentedConformanceInExtension' on generic struct 'InvalidConformance' here}} - -// CHECK-DIAGS: error: conformance to 'P' is not covered by macro 'UndocumentedConformanceInExtension' +/* +expected-expansion@-3:38 {{ + expected-error@1:1{{conformance to 'P' is not covered by macro 'UndocumentedConformanceInExtension'}} +}} +*/ @attached(extension) macro UndocumentedCodable() = #externalMacro(module: "MacroDefinition", type: "AlwaysAddCodable") @@ -155,8 +158,11 @@ macro UndocumentedCodable() = #externalMacro(module: "MacroDefinition", type: "A @UndocumentedCodable struct TestUndocumentedCodable {} // expected-note@-2 {{in expansion of macro 'UndocumentedCodable' on struct 'TestUndocumentedCodable' here}} - -// CHECK-DIAGS: error: conformance to 'Codable' (aka 'Decodable & Encodable') is not covered by macro 'UndocumentedCodable' +/* +expected-expansion@-3:34 {{ + expected-error@1:1{{conformance to 'Codable' (aka 'Decodable & Encodable') is not covered by macro 'UndocumentedCodable'}} +}} +*/ @attached(extension, conformances: Decodable) macro UndocumentedEncodable() = #externalMacro(module: "MacroDefinition", type: "AlwaysAddCodable") @@ -164,8 +170,11 @@ macro UndocumentedEncodable() = #externalMacro(module: "MacroDefinition", type: @UndocumentedEncodable struct TestUndocumentedEncodable {} // expected-note@-2 {{in expansion of macro 'UndocumentedEncodable' on struct 'TestUndocumentedEncodable' here}} - -// CHECK-DIAGS: error: conformance to 'Codable' (aka 'Decodable & Encodable') is not covered by macro 'UndocumentedEncodable' +/* +expected-expansion@-3:36 {{ + expected-error@1:1{{conformance to 'Codable' (aka 'Decodable & Encodable') is not covered by macro 'UndocumentedEncodable'}} +}} +*/ @attached(extension) macro BadExtension() = #externalMacro(module: "MacroDefinition", type: "BadExtensionMacro") @@ -176,7 +185,11 @@ struct HasSomeNestedType { @BadExtension // expected-note {{in expansion of macro 'BadExtension' on struct 'SomeNestedType' here}} struct SomeNestedType {} } -// CHECK-DIAGS: error: cannot find type 'SomeNestedType' in scope +/* +expected-expansion@-2:2 {{ + expected-error@1:11{{cannot find type 'SomeNestedType' in scope}} +}} +*/ #endif diff --git a/test/Macros/macro_expand_other.swift b/test/Macros/macro_expand_other.swift index 4d210deb76d..b215e1d2eff 100644 --- a/test/Macros/macro_expand_other.swift +++ b/test/Macros/macro_expand_other.swift @@ -32,7 +32,15 @@ func testFreestandingExpansionOfOther() { #if TEST_DIAGNOSTICS #recurseThrough(true) - // expected-note@-1 {{in expansion of macro 'recurseThrough' here}} + /* + expected-expansion@-2:1{{ + expected-expansion@1:1{{ + expected-error@1:1{{recursive expansion of macro 'recurse'}} + }} + expected-note@1:1{{in expansion of macro 'recurse' here}} + }} + expected-note@-8 {{in expansion of macro 'recurseThrough' here}} + */ #endif } diff --git a/test/Macros/macro_expand_peers.swift b/test/Macros/macro_expand_peers.swift index dfd8a3cc089..6e90bf8061f 100644 --- a/test/Macros/macro_expand_peers.swift +++ b/test/Macros/macro_expand_peers.swift @@ -317,9 +317,15 @@ struct ABIAttrWithAttachedMacro { // expected-error@+1 {{macro 'addCompletionHandler()' cannot be expanded in '@abi' attribute}} @abi(@addCompletionHandler func fn1() async) @addCompletionHandler func fn1() async {} - // From diagnostics in the expansion: - // expected-note@-2 3{{in expansion of macro 'addCompletionHandler' on instance method 'fn1()' here}} - // expected-note@-4 {{'fn1()' previously declared here}} + /* + expected-expansion@-2:44{{ + expected-error@2:8{{macro 'addCompletionHandler()' cannot be expanded in '@abi' attribute}} + expected-error@2:35{{invalid redeclaration of 'fn1()'}} + expected-error@4:23{{argument passed to call that takes no arguments}} + }} + expected-note@-7 3{{in expansion of macro 'addCompletionHandler' on instance method 'fn1()' here}} + expected-note@-9 {{'fn1()' previously declared here}} + */ // expected-error@+1 {{macro 'addCompletionHandler()' cannot be expanded in '@abi' attribute}} @abi(@addCompletionHandler func fn2() async) @@ -327,8 +333,13 @@ struct ABIAttrWithAttachedMacro { @abi(func fn3() async) @addCompletionHandler func fn3() async {} - // From diagnostics in the expansion: - // expected-note@-2 2{{in expansion of macro 'addCompletionHandler' on instance method 'fn3()' here}} - // expected-note@-4 {{'fn3()' previously declared here}} + /* + expected-expansion@-2:44{{ + expected-error@1:11{{invalid redeclaration of 'fn3()'}} + expected-error@3:23{{argument passed to call that takes no arguments}} + }} + expected-note@-6 2{{in expansion of macro 'addCompletionHandler' on instance method 'fn3()' here}} + expected-note@-8 {{'fn3()' previously declared here}} + */ } #endif diff --git a/test/Macros/macro_expand_synthesized_members.swift b/test/Macros/macro_expand_synthesized_members.swift index 5001f1ab9b6..08443d83bad 100644 --- a/test/Macros/macro_expand_synthesized_members.swift +++ b/test/Macros/macro_expand_synthesized_members.swift @@ -105,12 +105,17 @@ print(ElementType.paper.unknown()) #if TEST_DIAGNOSTICS @addMembersQuotedInit struct S2 { -// expected-note@-2 {{in expansion of macro 'addMembersQuotedInit' on struct 'S2' here}} func useSynthesized() { S.method() print(type(of: getStorage())) } } +/* +expected-expansion@-2:1{{ + expected-error@14:1{{declaration name 'init()' is not covered by macro 'addMembersQuotedInit'}} +}} +expected-note@-11 {{in expansion of macro 'addMembersQuotedInit' on struct 'S2' here}} +*/ #endif @attached( diff --git a/test/Macros/top_level_freestanding.swift b/test/Macros/top_level_freestanding.swift index bfe678e7483..4be717f1c6a 100644 --- a/test/Macros/top_level_freestanding.swift +++ b/test/Macros/top_level_freestanding.swift @@ -12,10 +12,6 @@ // RUN: %target-typecheck-verify-swift -swift-version 5 -parse-as-library -load-plugin-library %t/%target-library-name(MacroDefinition) -module-name MacroUser -DTEST_DIAGNOSTICS -DIMPORT_MACRO_LIBRARY -swift-version 5 %S/Inputs/top_level_freestanding_other.swift -I %t -// Check diagnostic buffer names -// RUN: not %target-swift-frontend -typecheck -swift-version 5 -parse-as-library -load-plugin-library %t/%target-library-name(MacroDefinition) -module-name MacroUser -DTEST_DIAGNOSTICS -swift-version 5 %s %S/Inputs/top_level_freestanding_other.swift -diagnostic-style llvm 2> %t.diags -// RUN: %FileCheck -check-prefix DIAG_BUFFERS %s < %t.diags - // Execution testing // RUN: %target-build-swift -g -swift-version 5 -parse-as-library -load-plugin-library %t/%target-library-name(MacroDefinition) %s %S/Inputs/top_level_freestanding_other.swift -o %t/main -module-name MacroUser -swift-version 5 // RUN: %target-codesign %t/main @@ -60,7 +56,7 @@ func lookupGlobalFreestandingExpansion() { #anonymousTypes(public: true) { "hello" } -// CHECK-SIL: sil @$s9MacroUser03$s9A115User0033top_level_freestandingswift_DbGHjfMX60_0_33_082AE7CFEFA6960C804A9FE7366EB5A0Ll14anonymousTypesfMf_4namefMu_C5helloSSyF +// CHECK-SIL: sil @$s9MacroUser03$s9A115User0033top_level_freestandingswift_DbGHjfMX56_0_33_082AE7CFEFA6960C804A9FE7366EB5A0Ll14anonymousTypesfMf_4namefMu_C5helloSSyF @main struct Main { @@ -94,8 +90,6 @@ func testArbitraryAtGlobal() { } #endif -// expected-warning@@__swiftmacro_9MacroUser0039top_level_freestanding_otherswift_jrGEmfMX12_17_33_7FDB3F9D78D0279543373AD342C3C331Ll9stringifyfMf1_.swift:2:9{{'deprecated()' is deprecated}} -// expected-warning@@__swiftmacro_9MacroUser0039top_level_freestanding_otherswift_jrGEmfMX16_17_33_7FDB3F9D78D0279543373AD342C3C331Ll9stringifyfMf2_.swift:2:9{{'deprecated()' is deprecated}} #varValue @@ -106,26 +100,32 @@ func testGlobalVariable() { #if TEST_DIAGNOSTICS // expected-note @+1 6 {{in expansion of macro 'anonymousTypes' here}} -// expected-note@@__swiftmacro_9MacroUser0033top_level_freestandingswift_DbGHjfMX109_0_33_082AE7CFEFA6960C804A9FE7366EB5A0Ll14anonymousTypesfMf0_.swift:24:3 3{{in expansion of macro 'introduceTypeCheckingErrors' here}} #anonymousTypes(causeErrors: true) { "foo" } -// expected-expansion@-1 {{ -// expected-warning@23:8{{same-type requirement makes generic parameter 'T' non-generic; this is an error in the Swift 6 language mode}} -// expected-note@23:135{{'T' previously declared here}} -// expected-warning@23:149{{use of protocol 'Equatable' as a type must be written 'any Equatable'}} - -// expected-warning@5:16{{use of protocol 'Equatable' as a type must be written 'any Equatable'}} -// expected-warning@20:16{{use of protocol 'Equatable' as a type must be written 'any Equatable'}} -// expected-warning@2:273{{use of protocol 'Hashable' as a type must be written 'any Hashable'}} - -// expected-warning@2:10{{same-type requirement makes generic parameter 'T' non-generic; this is an error in the Swift 6 language mode}} -// expected-warning@2:259{{generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode}} -// }} +/* +expected-expansion@-2:1 {{ + expected-warning@23:8{{same-type requirement makes generic parameter 'T' non-generic; this is an error in the Swift 6 language mode}} + expected-note@23:135{{'T' previously declared here}} + expected-warning@23:149{{use of protocol 'Equatable' as a type must be written 'any Equatable'; this will be an error in a future Swift language mode}} + expected-note@24:3 3{{in expansion of macro 'introduceTypeCheckingErrors' here}} + expected-expansion@24:3 {{ + expected-warning@2:10{{same-type requirement makes generic parameter 'T' non-generic; this is an error in the Swift 6 language mode}} + expected-warning@2:259{{generic parameter 'T' shadows generic parameter from outer scope with the same name; this is an error in the Swift 6 language mode}} + expected-warning@2:273{{use of protocol 'Hashable' as a type must be written 'any Hashable'; this will be an error in a future Swift language mode}} + }} +}} +*/ // expected-note @+1 2 {{in expansion of macro 'anonymousTypes' here}} #anonymousTypes { () -> String in // expected-warning @+1 {{use of protocol 'Equatable' as a type must be written 'any Equatable'}} _ = 0 as Equatable return "foo" } +/* +expected-expansion@-6:1{{ + expected-warning@5:16{{use of protocol 'Equatable' as a type must be written 'any Equatable'; this will be an error in a future Swift language mode}} + expected-warning@20:16{{use of protocol 'Equatable' as a type must be written 'any Equatable'; this will be an error in a future Swift language mode}} +}} +*/ #endif