Skip to content

Commit 8da4b1e

Browse files
committed
Check loading from module and interface
1 parent f5c596b commit 8da4b1e

File tree

3 files changed

+54
-0
lines changed

3 files changed

+54
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// REQUIRES: swift_swift_parser
2+
3+
// RUN: %empty-directory(%t)
4+
5+
// RUN: %host-build-swift -swift-version 5 -emit-library -o %t/%target-library-name(MacroDefinition) -module-name=MacroDefinition %S/Inputs/syntax_macro_definitions.swift -g -no-toolchain-stdlib-rpath
6+
7+
// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %s -module-name CheckInterface -load-plugin-library %t/%target-library-name(MacroDefinition) -enable-experimental-feature ExpressionMacroDefaultArguments -I %t
8+
// RUN: %target-swift-typecheck-module-from-interface(%t.swiftinterface) -module-name CheckInterface -load-plugin-library %t/%target-library-name(MacroDefinition) -I %t
9+
10+
// RUN: %FileCheck %s < %t.swiftinterface
11+
12+
@freestanding(expression)
13+
public macro stringify<T>(_ value: T) -> (T, String) = #externalMacro(
14+
module: "MacroDefinition", type: "StringifyMacro"
15+
)
16+
17+
// CHECK: public func foo(param: (Swift.String, Swift.String) = #stringify(#fileID))
18+
public func foo(param: (String, String) = #stringify(#fileID)) {
19+
print(param)
20+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// REQUIRES: swift_swift_parser
2+
// REQUIRES: executable_test
3+
4+
// RUN: %empty-directory(%t)
5+
6+
// RUN: %host-build-swift -swift-version 5 -emit-library -o %t/%target-library-name(MacroDefinition) -module-name=MacroDefinition %S/Inputs/syntax_macro_definitions.swift -g -no-toolchain-stdlib-rpath
7+
8+
// RUN: %target-build-swift-dylib(%t/%target-library-name(Serialized)) %S/macro_default_argument_library.swift -module-name Serialized -emit-module -emit-module-path %t/Serialized.swiftmodule -load-plugin-library %t/%target-library-name(MacroDefinition) -enable-experimental-feature ExpressionMacroDefaultArguments -I %t -swift-version 5
9+
10+
// RUN: %target-build-swift -enable-experimental-feature ExpressionMacroDefaultArguments -swift-version 5 -load-plugin-library %t/%target-library-name(MacroDefinition) %s -o %t/main -module-name MacroUser -emit-tbd -emit-tbd-path %t/MacroUser.tbd -I %t -L %t %target-rpath(%t) -lSerialized
11+
// RUN: %target-codesign %t/main
12+
// RUN: %target-run %t/main | %FileCheck %s
13+
14+
import Serialized
15+
16+
// CHECK: ("MacroUser/macro_default_argument_serialized.swift", "#fileID")
17+
print(foo())
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
// REQUIRES: swift_swift_parser
2+
// REQUIRES: executable_test
3+
4+
// RUN: %empty-directory(%t)
5+
6+
// RUN: %host-build-swift -swift-version 5 -emit-library -o %t/%target-library-name(MacroDefinition) -module-name=MacroDefinition %S/Inputs/syntax_macro_definitions.swift -g -no-toolchain-stdlib-rpath
7+
8+
// RUN: %target-build-swift-dylib(%t/%target-library-name(Interface)) %S/macro_default_argument_library.swift -module-name Interface -enable-library-evolution -emit-module-interface-path %t/Interface.swiftinterface -load-plugin-library %t/%target-library-name(MacroDefinition) -enable-experimental-feature ExpressionMacroDefaultArguments -I %t -swift-version 5
9+
10+
// RUN: %target-build-swift -enable-experimental-feature ExpressionMacroDefaultArguments -swift-version 5 -load-plugin-library %t/%target-library-name(MacroDefinition) %s -o %t/main -module-name MacroUser -emit-tbd -emit-tbd-path %t/MacroUser.tbd -I %t -L %t %target-rpath(%t) -lInterface
11+
// RUN: %target-codesign %t/main
12+
// RUN: %target-run %t/main | %FileCheck %s
13+
14+
import Interface
15+
16+
// CHECK: ("MacroUser/macro_default_argument_swiftinterface.swift", "#fileID")
17+
print(foo())

0 commit comments

Comments
 (0)