(node, target)
| 64216 | } |
| 64217 | } |
| 64218 | function generateLimitedTupleElements(node, target) { |
| 64219 | var len, i, elem, nameType; |
| 64220 | return __generator(this, function (_a) { |
| 64221 | switch (_a.label) { |
| 64222 | case 0: |
| 64223 | len = ts.length(node.elements); |
| 64224 | if (!len) |
| 64225 | return [2 /*return*/]; |
| 64226 | i = 0; |
| 64227 | _a.label = 1; |
| 64228 | case 1: |
| 64229 | if (!(i < len)) return [3 /*break*/, 4]; |
| 64230 | // Skip elements which do not exist in the target - a length error on the tuple overall is likely better than an error on a mismatched index signature |
| 64231 | if (isTupleLikeType(target) && !getPropertyOfType(target, ("" + i))) |
| 64232 | return [3 /*break*/, 3]; |
| 64233 | elem = node.elements[i]; |
| 64234 | if (ts.isOmittedExpression(elem)) |
| 64235 | return [3 /*break*/, 3]; |
| 64236 | nameType = getNumberLiteralType(i); |
| 64237 | return [4 /*yield*/, { errorNode: elem, innerExpression: elem, nameType: nameType }]; |
| 64238 | case 2: |
| 64239 | _a.sent(); |
| 64240 | _a.label = 3; |
| 64241 | case 3: |
| 64242 | i++; |
| 64243 | return [3 /*break*/, 1]; |
| 64244 | case 4: return [2 /*return*/]; |
| 64245 | } |
| 64246 | }); |
| 64247 | } |
| 64248 | function elaborateArrayLiteral(node, source, target, relation, containingMessageChain, errorOutputContainer) { |
| 64249 | if (target.flags & 131068 /* TypeFlags.Primitive */) |
| 64250 | return false; |
no test coverage detected