MCPcopy Create free account
hub / github.com/microsoft/typescript-go / checkReferenceExpression

Method checkReferenceExpression

internal/checker/checker.go:13080–13092  ·  view source on GitHub ↗
(expr *ast.Node, invalidReferenceMessage *diagnostics.Message, invalidOptionalChainMessage *diagnostics.Message)

Source from the content-addressed store, hash-verified

13078}
13079
13080func (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
13094func (c *Checker) checkObjectLiteral(node *ast.Node, checkMode CheckMode) *Type {
13095 // Expando object literals have empty properties but filled exports

Callers 6

checkForInStatementMethod · 0.95
checkForOfStatementMethod · 0.95

Calls 3

errorMethod · 0.95
SkipOuterExpressionsFunction · 0.92
IsAccessExpressionFunction · 0.92

Tested by

no test coverage detected