Skip to content

Commit 6738384

Browse files
committed
fix: anonymous 5647 and 5647$ matching bug
1 parent d44ef97 commit 6738384

File tree

3 files changed

+51
-0
lines changed

3 files changed

+51
-0
lines changed

src/compileMatcher/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ export function mergeCaptures(...results: MatchResult[]): MatchResult {
7272
let current: MatchResult = null
7373
for (const result of results) {
7474
if (!result) continue
75+
if (!current) current = {}
7576
if (result.captures && hasCapturePlaceholder(result.captures)) {
7677
if (!current) current = {}
7778
if (!current.captures) current.captures = {}

test/findReplace/anonOrderedMatch.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { findReplaceTestcase } from '../findReplaceTestcase'
2+
import dedent from 'dedent-js'
3+
4+
findReplaceTestcase({
5+
file: __filename,
6+
input: dedent`
7+
MetadataItem.create({
8+
tag: 'foo',
9+
name: 'test',
10+
})
11+
`,
12+
find: dedent`
13+
MetadataItem.create({$$, name: $, $$})
14+
`,
15+
expectedFind: [
16+
{
17+
node: dedent`
18+
MetadataItem.create({
19+
tag: 'foo',
20+
name: 'test',
21+
})
22+
`,
23+
},
24+
],
25+
})

test/findReplace/anonRestMatch.ts

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { findReplaceTestcase } from '../findReplaceTestcase'
2+
import dedent from 'dedent-js'
3+
4+
findReplaceTestcase({
5+
file: __filename,
6+
input: dedent`
7+
MetadataItem.create({
8+
tag: 'foo',
9+
name: 'test',
10+
})
11+
`,
12+
find: dedent`
13+
MetadataItem.create({name: $, $$$})
14+
`,
15+
expectedFind: [
16+
{
17+
node: dedent`
18+
MetadataItem.create({
19+
tag: 'foo',
20+
name: 'test',
21+
})
22+
`,
23+
},
24+
],
25+
})

0 commit comments

Comments
 (0)