Skip to content
Snippets Groups Projects
Commit 02e75df3 authored by Pete Bacon Darwin's avatar Pete Bacon Darwin Committed by atscott
Browse files

refactor(compiler-cli): ensure `isNamed....()` helpers check name is identity (#38959) (#39272)

Previously the `node.name` property was only checked to ensure it was
defined. But that meant that it was a `ts.BindingName`, which also includes
`ts.BindingPattern`, which we do not support. But these helper methods were
forcefully casting the value to `ts.Identifier.

Now we also check that the `node.name` is actually an `ts.Identifier`.

PR Close #38959

PR Close #39272
parent f752ab93
No related merge requests found
......@@ -11,15 +11,19 @@ import {ClassDeclaration} from './host';
export function isNamedClassDeclaration(node: ts.Node):
node is ClassDeclaration<ts.ClassDeclaration> {
return ts.isClassDeclaration(node) && (node.name !== undefined);
return ts.isClassDeclaration(node) && isIdentifier(node.name);
}
export function isNamedFunctionDeclaration(node: ts.Node):
node is ClassDeclaration<ts.FunctionDeclaration> {
return ts.isFunctionDeclaration(node) && (node.name !== undefined);
return ts.isFunctionDeclaration(node) && isIdentifier(node.name);
}
export function isNamedVariableDeclaration(node: ts.Node):
node is ClassDeclaration<ts.VariableDeclaration> {
return ts.isVariableDeclaration(node) && (node.name !== undefined);
return ts.isVariableDeclaration(node) && isIdentifier(node.name);
}
function isIdentifier(node: ts.Node|undefined): node is ts.Identifier {
return node !== undefined && ts.isIdentifier(node);
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment