(node, propertyName)
| 75116 | || !!parent && ts.isEntityNameExpression(name) && parent === getResolvedSymbol(ts.getFirstIdentifier(name)); |
| 75117 | } |
| 75118 | function isValidPropertyAccess(node, propertyName) { |
| 75119 | switch (node.kind) { |
| 75120 | case 206 /* SyntaxKind.PropertyAccessExpression */: |
| 75121 | return isValidPropertyAccessWithType(node, node.expression.kind === 106 /* SyntaxKind.SuperKeyword */, propertyName, getWidenedType(checkExpression(node.expression))); |
| 75122 | case 161 /* SyntaxKind.QualifiedName */: |
| 75123 | return isValidPropertyAccessWithType(node, /*isSuper*/ false, propertyName, getWidenedType(checkExpression(node.left))); |
| 75124 | case 200 /* SyntaxKind.ImportType */: |
| 75125 | return isValidPropertyAccessWithType(node, /*isSuper*/ false, propertyName, getTypeFromTypeNode(node)); |
| 75126 | } |
| 75127 | } |
| 75128 | /** |
| 75129 | * Checks if an existing property access is valid for completions purposes. |
| 75130 | * @param node a property access-like node where we want to check if we can access a property. |
no test coverage detected