Skip to content

Commit 28d24a1

Browse files
committed
[Macros] Make sure we get different discriminators for top-level macros
Thank you, Hamish, for the test case!
1 parent 2c08dc2 commit 28d24a1

File tree

2 files changed

+19
-0
lines changed

2 files changed

+19
-0
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,15 @@
11
#anonymousTypes { "hello2" }
22

33
var globalVar = #stringify(1 + 1)
4+
var globalVar2 = { #stringify(1 + 1) }()
5+
6+
@available(*, deprecated)
7+
func deprecated() -> Int { 0 }
8+
9+
var globalVar3 = #stringify({ deprecated() })
10+
// expected-note@-1 2{{in expansion of macro 'stringify' here}}
11+
// expected-warning@-2{{'deprecated()' is deprecated}}
12+
13+
var globalVar4 = #stringify({ deprecated() })
14+
// expected-note@-1 2{{in expansion of macro 'stringify' here}}
15+
// expected-warning@-2{{'deprecated()' is deprecated}}

test/Macros/top_level_freestanding.swift

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
// Type check testing
88
// RUN: %target-typecheck-verify-swift -swift-version 5 -enable-experimental-feature FreestandingMacros -parse-as-library -load-plugin-library %t/%target-library-name(MacroDefinition) -module-name MacroUser -DTEST_DIAGNOSTICS -swift-version 5 %S/Inputs/top_level_freestanding_other.swift
99

10+
// Check diagnostic buffer names
11+
// RUN: %target-swift-frontend -typecheck -swift-version 5 -enable-experimental-feature FreestandingMacros -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 2> %t.diags
12+
// RUN: %FileCheck -check-prefix DIAG_BUFFERS %s < %t.diags
13+
1014
// Execution testing
1115
// RUN: %target-build-swift -g -swift-version 5 -enable-experimental-feature FreestandingMacros -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
1216
// RUN: %target-codesign %t/main
@@ -66,3 +70,6 @@ func testArbitraryAtGlobal() {
6670
}
6771

6872
@freestanding(expression) macro stringify<T>(_ value: T) -> (T, String) = #externalMacro(module: "MacroDefinition", type: "StringifyMacro")
73+
74+
// DIAG_BUFFERS: @__swiftmacro_9MacroUser9stringifyfMf1_{{.*}}warning: 'deprecated()' is deprecated
75+
// DIAG_BUFFERS: @__swiftmacro_9MacroUser9stringifyfMf2_{{.*}}warning: 'deprecated()' is deprecated

0 commit comments

Comments
 (0)