MCPcopy Index your code
hub / github.com/nodejs/node / checkDestructuringAssignment

Function checkDestructuringAssignment

test/fixtures/snapshot/typescript.js:78774–78803  ·  view source on GitHub ↗
(exprOrAssignment, sourceType, checkMode, rightIsThis)

Source from the content-addressed store, hash-verified

78772 return undefined;
78773 }
78774 function checkDestructuringAssignment(exprOrAssignment, sourceType, checkMode, rightIsThis) {
78775 var target;
78776 if (exprOrAssignment.kind === 297 /* SyntaxKind.ShorthandPropertyAssignment */) {
78777 var prop = exprOrAssignment;
78778 if (prop.objectAssignmentInitializer) {
78779 // In strict null checking mode, if a default value of a non-undefined type is specified, remove
78780 // undefined from the final type.
78781 if (strictNullChecks &&
78782 !(getFalsyFlags(checkExpression(prop.objectAssignmentInitializer)) & 32768 /* TypeFlags.Undefined */)) {
78783 sourceType = getTypeWithFacts(sourceType, 524288 /* TypeFacts.NEUndefined */);
78784 }
78785 checkBinaryLikeExpression(prop.name, prop.equalsToken, prop.objectAssignmentInitializer, checkMode);
78786 }
78787 target = exprOrAssignment.name;
78788 }
78789 else {
78790 target = exprOrAssignment;
78791 }
78792 if (target.kind === 221 /* SyntaxKind.BinaryExpression */ && target.operatorToken.kind === 63 /* SyntaxKind.EqualsToken */) {
78793 checkBinaryExpression(target, checkMode);
78794 target = target.left;
78795 }
78796 if (target.kind === 205 /* SyntaxKind.ObjectLiteralExpression */) {
78797 return checkObjectLiteralAssignment(target, sourceType, rightIsThis);
78798 }
78799 if (target.kind === 204 /* SyntaxKind.ArrayLiteralExpression */) {
78800 return checkArrayLiteralAssignment(target, sourceType, checkMode);
78801 }
78802 return checkReferenceAssignment(target, sourceType, checkMode);
78803 }
78804 function checkReferenceAssignment(target, sourceType, checkMode) {
78805 var targetType = checkExpression(target, checkMode);
78806 var error = target.parent.kind === 298 /* SyntaxKind.SpreadAssignment */ ?

Calls 7

getFalsyFlagsFunction · 0.85
getTypeWithFactsFunction · 0.85
checkReferenceAssignmentFunction · 0.85
checkExpressionFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…