mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This change PCMacro and PlaygroundTransform to return an a moduleID and fileID in addition to the source location information. The Frontend has been changed to run PCMacro and PlaygroundTransform on all input files instead of the main file only. The tests have been updated to conform to these changes with an addition of module and file ID specific tests. The Playgrounds related tests were adjusted to make a module out of the stub interface files since those files should not have PCMacro and PlaygroundTransform applied to them. rdar://problem/50821146
64 lines
2.1 KiB
Swift
64 lines
2.1 KiB
Swift
// RUN: %empty-directory(%t)
|
|
// RUN: cp %s %t/main.swift
|
|
// RUN: %target-build-swift -force-single-frontend-invocation -module-name PlaygroundSupport -emit-module-path %t/PlaygroundSupport.swiftmodule -parse-as-library -c -o %t/PlaygroundSupport.o %S/Inputs/PCMacroRuntime.swift %S/Inputs/SilentPlaygroundsRuntime.swift
|
|
// RUN: %target-build-swift -Xfrontend -pc-macro -o %t/main -I=%t %t/PlaygroundSupport.o %t/main.swift
|
|
// RUN: %target-codesign %t/main
|
|
// RUN: %target-run %t/main | %FileCheck %s
|
|
// RUN: %target-build-swift -Xfrontend -pc-macro -Xfrontend -playground -Xfrontend -debugger-support -o %t/main2 -I=%t %t/PlaygroundSupport.o %t/main.swift
|
|
// RUN: %target-codesign %t/main2
|
|
// RUN: %target-run %t/main2 | %FileCheck %s
|
|
// REQUIRES: executable_test
|
|
|
|
// FIXME: rdar://problem/30234450 PCMacro tests fail on linux in optimized mode
|
|
// UNSUPPORTED: OS=linux-gnu
|
|
|
|
import PlaygroundSupport
|
|
|
|
// Lets check that the source ranges are correct on all different kinds of func
|
|
// decls.
|
|
#sourceLocation(file: "main.swift", line: 8)
|
|
func function1(_ x: Int) -> Bool {
|
|
return x == 1
|
|
}
|
|
|
|
_ = function1(0)
|
|
|
|
// CHECK: [12:1-12:17] pc before
|
|
// CHECK-NEXT: [8:1-8:33] pc before
|
|
// CHECK-NEXT: [8:1-8:33] pc after
|
|
// CHECK-NEXT: [9:3-9:16] pc before
|
|
// CHECK-NEXT: [9:3-9:16] pc after
|
|
// CHECK-NEXT: [12:1-12:17] pc after
|
|
|
|
func function2(_ x: Int) {
|
|
|
|
}
|
|
_ = function2(0)
|
|
|
|
// CHECK-NEXT: [24:1-24:17] pc before
|
|
// CHECK-NEXT: [21:1-21:25] pc before
|
|
// CHECK-NEXT: [21:1-21:25] pc after
|
|
// CHECK-NEXT: [24:1-24:17] pc after
|
|
|
|
func function3(_ x: Int) throws {
|
|
|
|
}
|
|
_ = try! function3(0)
|
|
// this test is XFAIL-ed in func_throw_notype and should be updated to 31:32 instead of 31:25 once fixed.
|
|
// CHECK-NEXT: [34:1-34:22] pc before
|
|
// CHECK-NEXT: [31:1-31:25] pc before
|
|
// CHECK-NEXT: [31:1-31:25] pc after
|
|
// CHECK-NEXT: [34:1-34:22] pc after
|
|
|
|
func function4(_ x: Int) throws -> Bool {
|
|
return x == 1
|
|
}
|
|
_ = try! function4(0)
|
|
|
|
// CHECK-NEXT: [44:1-44:22] pc before
|
|
// CHECK-NEXT: [41:1-41:40] pc before
|
|
// CHECK-NEXT: [41:1-41:40] pc after
|
|
// CHECK-NEXT: [42:3-42:16] pc before
|
|
// CHECK-NEXT: [42:3-42:16] pc after
|
|
// CHECK-NEXT: [44:1-44:22] pc after
|