mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Fixes the way `DebugDescriptionMacro` produces a regex type name. The problem was use of backslash escapes that weren't sufficiently escaped. They needed to be double escaped. To avoid this trap, the regexes now use `[.]` to match a dot, instead of the more conventional `\.` syntax.
27 lines
1.3 KiB
Swift
27 lines
1.3 KiB
Swift
// REQUIRES: swift_swift_parser
|
|
|
|
// RUN: %empty-directory(%t)
|
|
// RUN: %target-swift-frontend %s -swift-version 5 -module-name main -disable-availability-checking -typecheck -enable-experimental-feature SymbolLinkageMarkers -plugin-path %swift-plugin-dir -dump-macro-expansions > %t/expansions-dump.txt 2>&1
|
|
// RUN: %FileCheck %s < %t/expansions-dump.txt
|
|
|
|
struct MyStruct {}
|
|
|
|
@_DebugDescription
|
|
extension MyStruct {
|
|
var debugDescription: String { "thirty" }
|
|
}
|
|
// CHECK: #if os(Linux)
|
|
// CHECK: @_section(".lldbsummaries")
|
|
// CHECK: #elseif os(Windows)
|
|
// CHECK: @_section(".lldbsummaries")
|
|
// CHECK: #else
|
|
// CHECK: @_section("__DATA_CONST,__lldbsummaries")
|
|
// CHECK: #endif
|
|
// CHECK: @_used
|
|
// CHECK: static let _lldb_summary = (
|
|
// CHECK: /* version */ 1 as UInt8,
|
|
// CHECK: /* record size */ 34 as UInt8,
|
|
// CHECK: /* "^main[.]MyStruct(<.+>)?$" */ 25 as UInt8, 94 as UInt8, 109 as UInt8, 97 as UInt8, 105 as UInt8, 110 as UInt8, 91 as UInt8, 46 as UInt8, 93 as UInt8, 77 as UInt8, 121 as UInt8, 83 as UInt8, 116 as UInt8, 114 as UInt8, 117 as UInt8, 99 as UInt8, 116 as UInt8, 40 as UInt8, 60 as UInt8, 46 as UInt8, 43 as UInt8, 62 as UInt8, 41 as UInt8, 63 as UInt8, 36 as UInt8, 0 as UInt8,
|
|
// CHECK: /* "thirty" */ 7 as UInt8, 116 as UInt8, 104 as UInt8, 105 as UInt8, 114 as UInt8, 116 as UInt8, 121 as UInt8, 0 as UInt8
|
|
// CHECK: )
|