(expr *ast.Node, invalidReferenceMessage *diagnostics.Message, invalidOptionalChainMessage *diagnostics.Message)
| 13078 | } |
| 13079 | |
| 13080 | func (c *Checker) checkReferenceExpression(expr *ast.Node, invalidReferenceMessage *diagnostics.Message, invalidOptionalChainMessage *diagnostics.Message) bool { |
| 13081 | // References are combinations of identifiers, parentheses, and property accesses. |
| 13082 | node := ast.SkipOuterExpressions(expr, ast.OEKAssertions|ast.OEKParentheses) |
| 13083 | if node.Kind != ast.KindIdentifier && !ast.IsAccessExpression(node) { |
| 13084 | c.error(expr, invalidReferenceMessage) |
| 13085 | return false |
| 13086 | } |
| 13087 | if node.Flags&ast.NodeFlagsOptionalChain != 0 { |
| 13088 | c.error(expr, invalidOptionalChainMessage) |
| 13089 | return false |
| 13090 | } |
| 13091 | return true |
| 13092 | } |
| 13093 | |
| 13094 | func (c *Checker) checkObjectLiteral(node *ast.Node, checkMode CheckMode) *Type { |
| 13095 | // Expando object literals have empty properties but filled exports |
no test coverage detected