Skip to content

Commit c261085

Browse files
committed
Fix NonNullAssert convert in member chain
1 parent 7841903 commit c261085

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

src/transform-node.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ function getOuterEnd(node: NGNode): number {
2222
}
2323

2424
function isOptionalObjectOrCallee(node: NGNode): boolean {
25+
if (node.type === 'TSNonNullExpression') {
26+
return isOptionalObjectOrCallee(node.expression);
27+
}
28+
2529
return (
2630
(node.type === 'OptionalCallExpression' ||
2731
node.type === 'OptionalMemberExpression') &&

tests/transform.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,8 @@ describe.each`
8888
${'PropertyRead'} | ${'MemberExpression'} | ${' this . a '} | ${true} | ${true} | ${true} | ${true}
8989
${'PropertyRead'} | ${'OptionalMemberExpression'} | ${' a ?. b . c '} | ${true} | ${true} | ${true} | ${true}
9090
${'PropertyRead'} | ${'OptionalMemberExpression'} | ${' a ?. b ( ) . c '} | ${true} | ${true} | ${true} | ${true}
91+
${'PropertyRead'} | ${'OptionalMemberExpression'} | ${' foo?.bar!.bam '} | ${true} | ${true} | ${true} | ${true}
92+
${'PropertyRead'} | ${'MemberExpression'} | ${' (foo?.bar)!.bam '} | ${true} | ${true} | ${true} | ${true}
9193
${'Binary'} | ${'AssignmentExpression'} | ${' a . b = 1 '} | ${true} | ${false} | ${false} | ${false}
9294
${'Binary'} | ${'AssignmentExpression'} | ${' a = 1 '} | ${true} | ${false} | ${false} | ${false}
9395
${'Call'} | ${'OptionalCallExpression'} | ${' a ?. b ( ) '} | ${true} | ${true} | ${true} | ${true}

0 commit comments

Comments
 (0)