Skip to content

Commit e2fc7e4

Browse files
authored
Fix test case panics (microsoft#381)
1 parent 9bf7f4a commit e2fc7e4

File tree

3 files changed

+9
-9
lines changed

3 files changed

+9
-9
lines changed

internal/ast/ast.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,7 @@ func (n *Node) PropertyName() *Node {
543543
case KindBindingElement:
544544
return n.AsBindingElement().PropertyName
545545
}
546-
panic("Unhandled case in Node.PropertyName: " + n.Kind.String())
546+
return nil
547547
}
548548

549549
func (n *Node) PropertyNameOrName() *Node {

internal/ast/utilities.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -833,12 +833,12 @@ func WalkUpParenthesizedTypes(node *TypeNode) *Node {
833833

834834
// Walks up the parents of a node to find the containing SourceFile
835835
func GetSourceFileOfNode(node *Node) *SourceFile {
836-
for node.Parent != nil {
836+
for node != nil {
837+
if node.Kind == KindSourceFile {
838+
return node.AsSourceFile()
839+
}
837840
node = node.Parent
838841
}
839-
if node.Kind == KindSourceFile {
840-
return node.AsSourceFile()
841-
}
842842
return nil
843843
}
844844

internal/checker/checker.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4908,7 +4908,7 @@ func (c *Checker) getTypeFromImportAttributes(node *ast.Node) *Type {
49084908
members := make(ast.SymbolTable)
49094909
for _, attr := range node.AsImportAttributes().Attributes.Nodes {
49104910
member := c.newSymbol(ast.SymbolFlagsProperty, attr.Name().Text())
4911-
c.valueSymbolLinks.Get(symbol).resolvedType = c.getRegularTypeOfLiteralType(c.checkExpression(attr.AsImportAttribute().Value))
4911+
c.valueSymbolLinks.Get(member).resolvedType = c.getRegularTypeOfLiteralType(c.checkExpression(attr.AsImportAttribute().Value))
49124912
members[member.Name] = member
49134913
}
49144914
t := c.newAnonymousType(symbol, members, nil, nil, nil)
@@ -6100,7 +6100,7 @@ func (c *Checker) checkAliasSymbol(node *ast.Node) {
61006100
default:
61016101
message = diagnostics.X_0_resolves_to_a_type_only_declaration_and_must_be_imported_using_a_type_only_import_when_verbatimModuleSyntax_is_enabled
61026102
}
6103-
name := core.IfElse(ast.IsImportSpecifier(node), node.PropertyNameOrName(), node.Name()).Text()
6103+
name := node.PropertyNameOrName().Text()
61046104
c.addTypeOnlyDeclarationRelatedInfo(c.error(node, message, name), core.IfElse(isType, nil, typeOnlyAlias), name)
61056105
}
61066106
if isType && node.Kind == ast.KindImportEqualsDeclaration && hasEffectiveModifier(node, ast.ModifierFlagsExport) {
@@ -25573,10 +25573,10 @@ func (c *Checker) markExportSpecifierAliasReferenced(location *ast.ExportSpecifi
2557325573
// Do nothing, non-local symbol
2557425574
} else {
2557525575
target := symbol
25576-
if symbol.Flags&ast.SymbolFlagsAlias != 0 {
25576+
if target != nil && target.Flags&ast.SymbolFlagsAlias != 0 {
2557725577
target = c.resolveAlias(target)
2557825578
}
25579-
if target != nil || c.getSymbolFlags(target)&ast.SymbolFlagsValue != 0 {
25579+
if target == nil || c.getSymbolFlags(target)&ast.SymbolFlagsValue != 0 {
2558025580
c.markExportAsReferenced(location) // marks export as used
2558125581
c.markIdentifierAliasReferenced(exportedName) // marks target of export as used
2558225582
}

0 commit comments

Comments
 (0)