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

Function getAssignmentTargetKind

internal/checker/utilities.go:90–108  ·  view source on GitHub ↗

BinaryExpression | PrefixUnaryExpression | PostfixUnaryExpression | ForInOrOfStatement

(node *ast.Node)

Source from the content-addressed store, hash-verified

88type AssignmentTarget = ast.Node // BinaryExpression | PrefixUnaryExpression | PostfixUnaryExpression | ForInOrOfStatement
89
90func getAssignmentTargetKind(node *ast.Node) AssignmentKind {
91 target := ast.GetAssignmentTarget(node)
92 if target == nil {
93 return AssignmentKindNone
94 }
95 switch target.Kind {
96 case ast.KindBinaryExpression:
97 binaryOperator := target.AsBinaryExpression().OperatorToken.Kind
98 if binaryOperator == ast.KindEqualsToken || ast.IsLogicalOrCoalescingAssignmentOperator(binaryOperator) {
99 return AssignmentKindDefinite
100 }
101 return AssignmentKindCompound
102 case ast.KindPrefixUnaryExpression, ast.KindPostfixUnaryExpression:
103 return AssignmentKindCompound
104 case ast.KindForInStatement, ast.KindForOfStatement:
105 return AssignmentKindDefinite
106 }
107 panic("Unhandled case in getAssignmentTargetKind")
108}
109
110func isDeleteTarget(node *ast.Node) bool {
111 if !ast.IsAccessExpression(node) {

Calls 4

GetAssignmentTargetFunction · 0.92
panicFunction · 0.85
AsBinaryExpressionMethod · 0.80

Tested by

no test coverage detected