Skip to content

Commit 5b5873e

Browse files
committed
use sourceAccurate mode instead of fixedUp
1 parent a45a334 commit 5b5873e

File tree

3 files changed

+30
-7
lines changed

3 files changed

+30
-7
lines changed

Sources/MarkdownPluginSwift/Signature.Expanded (ext).swift

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,10 @@ extension Signature.Expanded
2828

2929
if !symbols.isEmpty
3030
{
31-
fatalError("syntax didn’t round-trip, failed to match symbols: \(symbols)")
31+
fatalError("""
32+
syntax didn’t round-trip, failed to match symbols: \(symbols), \
33+
source: '\(String.init(decoding: utf8, as: Unicode.UTF8.self))'
34+
""")
3235
}
3336
}
3437

Sources/MarkdownPluginSwift/SignatureSyntax.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ extension SignatureSyntax
2727

2828
let decl:DeclSyntax = .parse(from: &parser)
2929

30-
for region:Syntax in decl.children(viewMode: .fixedUp)
30+
for region:Syntax in decl.children(viewMode: .sourceAccurate)
3131
{
3232
if let clause:GenericParameterClauseSyntax =
3333
region.as(GenericParameterClauseSyntax.self)
@@ -37,7 +37,7 @@ extension SignatureSyntax
3737
else if
3838
let region:FunctionSignatureSyntax = region.as(FunctionSignatureSyntax.self)
3939
{
40-
for region:Syntax in region.children(viewMode: .fixedUp)
40+
for region:Syntax in region.children(viewMode: .sourceAccurate)
4141
{
4242
if let clause:ParameterClauseSyntax =
4343
region.as(ParameterClauseSyntax.self)
@@ -104,14 +104,14 @@ extension SignatureSyntax
104104
private mutating
105105
func append(clause region:GenericParameterClauseSyntax)
106106
{
107-
for region:Syntax in region.children(viewMode: .fixedUp)
107+
for region:Syntax in region.children(viewMode: .sourceAccurate)
108108
{
109109
if let region:GenericParameterListSyntax =
110110
region.as(GenericParameterListSyntax.self)
111111
{
112112
for region:GenericParameterSyntax in region
113113
{
114-
for region:Syntax in region.children(viewMode: .fixedUp)
114+
for region:Syntax in region.children(viewMode: .sourceAccurate)
115115
{
116116
if let region:TokenSyntax = region.as(TokenSyntax.self),
117117
case .identifier = region.tokenKind
@@ -134,7 +134,7 @@ extension SignatureSyntax
134134
private mutating
135135
func append(clause region:ParameterClauseSyntax)
136136
{
137-
for region:Syntax in region.children(viewMode: .fixedUp)
137+
for region:Syntax in region.children(viewMode: .sourceAccurate)
138138
{
139139
if let region:FunctionParameterListSyntax =
140140
region.as(FunctionParameterListSyntax.self)
@@ -153,7 +153,7 @@ extension SignatureSyntax
153153
}
154154

155155
var firstName:Bool = true
156-
for region:Syntax in region.children(viewMode: .fixedUp)
156+
for region:Syntax in region.children(viewMode: .sourceAccurate)
157157
{
158158
if firstName,
159159
let region:TokenSyntax = region.as(TokenSyntax.self)

Sources/MarkdownPluginSwiftTests/Main.swift

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,26 @@ enum Main:SyncTests
7474
""")
7575
}
7676

77+
if let tests:TestGroup = tests / "Malformed"
78+
{
79+
let decl:String = """
80+
init(__readers: UInt32, \
81+
__writers: UInt32,
82+
__wrphase_futex: UInt32,
83+
__writers_futex: UInt32,
84+
__pad3: UInt32,
85+
__pad4: UInt32,
86+
__cur_writer: Int32,
87+
__shared: Int32,
88+
__rwelision: Int8,
89+
__pad1: (UInt8, UInt8, UInt8, UInt8, UInt8, UInt8, UInt8), \
90+
__pad2: UInt, \
91+
__flags: UInt32)
92+
"""
93+
94+
let expanded:Signature<Never>.Expanded = .init(decl)
95+
tests.expect("\(expanded.bytecode.safe)" ==? decl)
96+
}
7797

7898
if let tests:TestGroup = tests / "Abridged"
7999
{

0 commit comments

Comments
 (0)