mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
Update LKG
This commit is contained in:
+154
-90
@@ -6407,6 +6407,36 @@ var ts;
|
||||
return false;
|
||||
}
|
||||
ts.isDeclarationName = isDeclarationName;
|
||||
function getNameOfDeclaration(declaration) {
|
||||
if (!declaration) {
|
||||
return undefined;
|
||||
}
|
||||
if (declaration.kind === 194) {
|
||||
var kind = getSpecialPropertyAssignmentKind(declaration);
|
||||
var lhs = declaration.left;
|
||||
switch (kind) {
|
||||
case 0:
|
||||
case 2:
|
||||
return undefined;
|
||||
case 1:
|
||||
if (lhs.kind === 71) {
|
||||
return lhs.name;
|
||||
}
|
||||
else {
|
||||
return lhs.expression.name;
|
||||
}
|
||||
case 4:
|
||||
case 5:
|
||||
return lhs.name;
|
||||
case 3:
|
||||
return lhs.expression.name;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return declaration.name;
|
||||
}
|
||||
}
|
||||
ts.getNameOfDeclaration = getNameOfDeclaration;
|
||||
function isLiteralComputedPropertyDeclarationName(node) {
|
||||
return (node.kind === 9 || node.kind === 8) &&
|
||||
node.parent.kind === 144 &&
|
||||
@@ -6591,7 +6621,8 @@ var ts;
|
||||
}
|
||||
ts.isStringOrNumericLiteral = isStringOrNumericLiteral;
|
||||
function hasDynamicName(declaration) {
|
||||
return declaration.name && isDynamicName(declaration.name);
|
||||
var name = getNameOfDeclaration(declaration);
|
||||
return name && isDynamicName(name);
|
||||
}
|
||||
ts.hasDynamicName = hasDynamicName;
|
||||
function isDynamicName(name) {
|
||||
@@ -11240,9 +11271,10 @@ var ts;
|
||||
}
|
||||
ts.getDeclarationName = getDeclarationName;
|
||||
function getName(node, allowComments, allowSourceMaps, emitFlags) {
|
||||
if (node.name && ts.isIdentifier(node.name) && !ts.isGeneratedIdentifier(node.name)) {
|
||||
var name = ts.getMutableClone(node.name);
|
||||
emitFlags |= ts.getEmitFlags(node.name);
|
||||
var nodeName = ts.getNameOfDeclaration(node);
|
||||
if (nodeName && ts.isIdentifier(nodeName) && !ts.isGeneratedIdentifier(nodeName)) {
|
||||
var name = ts.getMutableClone(nodeName);
|
||||
emitFlags |= ts.getEmitFlags(nodeName);
|
||||
if (!allowSourceMaps)
|
||||
emitFlags |= 48;
|
||||
if (!allowComments)
|
||||
@@ -17431,19 +17463,20 @@ var ts;
|
||||
}
|
||||
}
|
||||
function getDeclarationName(node) {
|
||||
if (node.name) {
|
||||
var name = ts.getNameOfDeclaration(node);
|
||||
if (name) {
|
||||
if (ts.isAmbientModule(node)) {
|
||||
return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + node.name.text + "\"";
|
||||
return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + name.text + "\"";
|
||||
}
|
||||
if (node.name.kind === 144) {
|
||||
var nameExpression = node.name.expression;
|
||||
if (name.kind === 144) {
|
||||
var nameExpression = name.expression;
|
||||
if (ts.isStringOrNumericLiteral(nameExpression)) {
|
||||
return nameExpression.text;
|
||||
}
|
||||
ts.Debug.assert(ts.isWellKnownSymbolSyntactically(nameExpression));
|
||||
return ts.getPropertyNameForKnownSymbolName(nameExpression.name.text);
|
||||
}
|
||||
return node.name.text;
|
||||
return name.text;
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 152:
|
||||
@@ -17539,9 +17572,9 @@ var ts;
|
||||
}
|
||||
}
|
||||
ts.forEach(symbol.declarations, function (declaration) {
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message_1, getDisplayName(declaration)));
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(ts.getNameOfDeclaration(declaration) || declaration, message_1, getDisplayName(declaration)));
|
||||
});
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message_1, getDisplayName(node)));
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(ts.getNameOfDeclaration(node) || node, message_1, getDisplayName(node)));
|
||||
symbol = createSymbol(0, name);
|
||||
}
|
||||
}
|
||||
@@ -21142,16 +21175,16 @@ var ts;
|
||||
recordMergedSymbol(target, source);
|
||||
}
|
||||
else if (target.flags & 1024) {
|
||||
error(source.declarations[0].name, ts.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, symbolToString(target));
|
||||
error(ts.getNameOfDeclaration(source.declarations[0]), ts.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, symbolToString(target));
|
||||
}
|
||||
else {
|
||||
var message_2 = target.flags & 2 || source.flags & 2
|
||||
? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0;
|
||||
ts.forEach(source.declarations, function (node) {
|
||||
error(node.name ? node.name : node, message_2, symbolToString(source));
|
||||
error(ts.getNameOfDeclaration(node) || node, message_2, symbolToString(source));
|
||||
});
|
||||
ts.forEach(target.declarations, function (node) {
|
||||
error(node.name ? node.name : node, message_2, symbolToString(source));
|
||||
error(ts.getNameOfDeclaration(node) || node, message_2, symbolToString(source));
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -21262,7 +21295,8 @@ var ts;
|
||||
var useFile = ts.getSourceFileOfNode(usage);
|
||||
if (declarationFile !== useFile) {
|
||||
if ((modulekind && (declarationFile.externalModuleIndicator || useFile.externalModuleIndicator)) ||
|
||||
(!compilerOptions.outFile && !compilerOptions.out)) {
|
||||
(!compilerOptions.outFile && !compilerOptions.out) ||
|
||||
ts.isInAmbientContext(declaration)) {
|
||||
return true;
|
||||
}
|
||||
if (isUsedInFunctionOrInstanceProperty(usage, declaration)) {
|
||||
@@ -21623,13 +21657,13 @@ var ts;
|
||||
ts.Debug.assert(declaration !== undefined, "Declaration to checkResolvedBlockScopedVariable is undefined");
|
||||
if (!ts.isInAmbientContext(declaration) && !isBlockScopedNameDeclaredBeforeUse(declaration, errorLocation)) {
|
||||
if (result.flags & 2) {
|
||||
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
else if (result.flags & 32) {
|
||||
error(errorLocation, ts.Diagnostics.Class_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Class_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
else if (result.flags & 384) {
|
||||
error(errorLocation, ts.Diagnostics.Enum_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Enum_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -22839,8 +22873,9 @@ var ts;
|
||||
function getNameOfSymbol(symbol) {
|
||||
var declaration = ts.firstOrUndefined(symbol.declarations);
|
||||
if (declaration) {
|
||||
if (declaration.name) {
|
||||
return ts.declarationNameToString(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
return ts.declarationNameToString(name);
|
||||
}
|
||||
if (declaration.parent && declaration.parent.kind === 226) {
|
||||
return ts.declarationNameToString(declaration.parent.name);
|
||||
@@ -22921,8 +22956,9 @@ var ts;
|
||||
function getNameOfSymbol(symbol) {
|
||||
if (symbol.declarations && symbol.declarations.length) {
|
||||
var declaration = symbol.declarations[0];
|
||||
if (declaration.name) {
|
||||
return ts.declarationNameToString(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
return ts.declarationNameToString(name);
|
||||
}
|
||||
if (declaration.parent && declaration.parent.kind === 226) {
|
||||
return ts.declarationNameToString(declaration.parent.name);
|
||||
@@ -25751,8 +25787,9 @@ var ts;
|
||||
type = anyType;
|
||||
if (noImplicitAny) {
|
||||
var declaration = signature.declaration;
|
||||
if (declaration.name) {
|
||||
error(declaration.name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(declaration.name));
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
error(name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(name));
|
||||
}
|
||||
else {
|
||||
error(declaration, ts.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions);
|
||||
@@ -27672,24 +27709,6 @@ var ts;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
function isKnownProperty(type, name, isComparingJsxAttributes) {
|
||||
if (type.flags & 32768) {
|
||||
var resolved = resolveStructuredTypeMembers(type);
|
||||
if (resolved.stringIndexInfo || resolved.numberIndexInfo && isNumericLiteralName(name) ||
|
||||
getPropertyOfType(type, name) || isComparingJsxAttributes && !isUnhyphenatedJsxName(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (type.flags & 196608) {
|
||||
for (var _i = 0, _a = type.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
if (isKnownProperty(t, name, isComparingJsxAttributes)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function hasExcessProperties(source, target, reportErrors) {
|
||||
if (maybeTypeOfKind(target, 32768) && !(getObjectFlags(target) & 512)) {
|
||||
var isComparingJsxAttributes = !!(source.flags & 33554432);
|
||||
@@ -28703,7 +28722,7 @@ var ts;
|
||||
default:
|
||||
diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type;
|
||||
}
|
||||
error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString);
|
||||
error(declaration, diagnostic, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)), typeAsString);
|
||||
}
|
||||
function reportErrorsFromWidening(declaration, type) {
|
||||
if (produceDiagnostics && noImplicitAny && type.flags & 2097152) {
|
||||
@@ -30255,7 +30274,7 @@ var ts;
|
||||
if (type === autoType || type === autoArrayType) {
|
||||
if (flowType === autoType || flowType === autoArrayType) {
|
||||
if (noImplicitAny) {
|
||||
error(declaration.name, ts.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));
|
||||
error(ts.getNameOfDeclaration(declaration), ts.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));
|
||||
error(node, ts.Diagnostics.Variable_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType));
|
||||
}
|
||||
return convertAutoToAny(flowType);
|
||||
@@ -31253,6 +31272,8 @@ var ts;
|
||||
var spread = emptyObjectType;
|
||||
var attributesArray = [];
|
||||
var hasSpreadAnyType = false;
|
||||
var explicitlySpecifyChildrenAttribute = false;
|
||||
var jsxChildrenPropertyName = getJsxElementChildrenPropertyname();
|
||||
for (var _i = 0, _a = attributes.properties; _i < _a.length; _i++) {
|
||||
var attributeDecl = _a[_i];
|
||||
var member = attributeDecl.symbol;
|
||||
@@ -31270,6 +31291,9 @@ var ts;
|
||||
attributeSymbol.target = member;
|
||||
attributesTable.set(attributeSymbol.name, attributeSymbol);
|
||||
attributesArray.push(attributeSymbol);
|
||||
if (attributeDecl.name.text === jsxChildrenPropertyName) {
|
||||
explicitlySpecifyChildrenAttribute = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
ts.Debug.assert(attributeDecl.kind === 255);
|
||||
@@ -31278,11 +31302,7 @@ var ts;
|
||||
attributesArray = [];
|
||||
attributesTable = ts.createMap();
|
||||
}
|
||||
var exprType = checkExpression(attributeDecl.expression);
|
||||
if (!isValidSpreadType(exprType)) {
|
||||
error(attributeDecl, ts.Diagnostics.Spread_types_may_only_be_created_from_object_types);
|
||||
hasSpreadAnyType = true;
|
||||
}
|
||||
var exprType = getApparentType(checkExpression(attributeDecl.expression));
|
||||
if (isTypeAny(exprType)) {
|
||||
hasSpreadAnyType = true;
|
||||
}
|
||||
@@ -31321,9 +31341,8 @@ var ts;
|
||||
childrenTypes.push(checkExpression(child, checkMode));
|
||||
}
|
||||
}
|
||||
var jsxChildrenPropertyName = getJsxElementChildrenPropertyname();
|
||||
if (!hasSpreadAnyType && jsxChildrenPropertyName && jsxChildrenPropertyName !== "") {
|
||||
if (attributesTable.has(jsxChildrenPropertyName)) {
|
||||
if (explicitlySpecifyChildrenAttribute) {
|
||||
error(attributes, ts.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten, jsxChildrenPropertyName);
|
||||
}
|
||||
var childrenPropSymbol = createSymbol(4 | 134217728, jsxChildrenPropertyName);
|
||||
@@ -31336,8 +31355,7 @@ var ts;
|
||||
return hasSpreadAnyType ? anyType : createJsxAttributesType(attributes.symbol, attributesTable);
|
||||
function createJsxAttributesType(symbol, attributesTable) {
|
||||
var result = createAnonymousType(symbol, attributesTable, emptyArray, emptyArray, undefined, undefined);
|
||||
var freshObjectLiteralFlag = compilerOptions.suppressExcessPropertyErrors ? 0 : 1048576;
|
||||
result.flags |= 33554432 | 4194304 | freshObjectLiteralFlag;
|
||||
result.flags |= 33554432 | 4194304;
|
||||
result.objectFlags |= 128;
|
||||
return result;
|
||||
}
|
||||
@@ -31437,6 +31455,20 @@ var ts;
|
||||
}
|
||||
return _jsxElementChildrenPropertyName;
|
||||
}
|
||||
function getApparentTypeOfJsxPropsType(propsType) {
|
||||
if (!propsType) {
|
||||
return undefined;
|
||||
}
|
||||
if (propsType.flags & 131072) {
|
||||
var propsApparentType = [];
|
||||
for (var _i = 0, _a = propsType.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
propsApparentType.push(getApparentType(t));
|
||||
}
|
||||
return getIntersectionType(propsApparentType);
|
||||
}
|
||||
return getApparentType(propsType);
|
||||
}
|
||||
function defaultTryGetJsxStatelessFunctionAttributesType(openingLikeElement, elementType, elemInstanceType, elementClassType) {
|
||||
ts.Debug.assert(!(elementType.flags & 65536));
|
||||
if (!elementClassType || !isTypeAssignableTo(elemInstanceType, elementClassType)) {
|
||||
@@ -31446,6 +31478,7 @@ var ts;
|
||||
if (callSignature !== unknownSignature) {
|
||||
var callReturnType = callSignature && getReturnTypeOfSignature(callSignature);
|
||||
var paramType = callReturnType && (callSignature.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(callSignature.parameters[0]));
|
||||
paramType = getApparentTypeOfJsxPropsType(paramType);
|
||||
if (callReturnType && isTypeAssignableTo(callReturnType, jsxStatelessElementType)) {
|
||||
var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes);
|
||||
if (intrinsicAttributes !== unknownType) {
|
||||
@@ -31471,6 +31504,7 @@ var ts;
|
||||
var candidate = candidatesOutArray_1[_i];
|
||||
var callReturnType = getReturnTypeOfSignature(candidate);
|
||||
var paramType = callReturnType && (candidate.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(candidate.parameters[0]));
|
||||
paramType = getApparentTypeOfJsxPropsType(paramType);
|
||||
if (callReturnType && isTypeAssignableTo(callReturnType, jsxStatelessElementType)) {
|
||||
var shouldBeCandidate = true;
|
||||
for (var _a = 0, _b = openingLikeElement.attributes.properties; _a < _b.length; _a++) {
|
||||
@@ -31674,6 +31708,24 @@ var ts;
|
||||
}
|
||||
checkJsxAttributesAssignableToTagNameAttributes(node);
|
||||
}
|
||||
function isKnownProperty(targetType, name, isComparingJsxAttributes) {
|
||||
if (targetType.flags & 32768) {
|
||||
var resolved = resolveStructuredTypeMembers(targetType);
|
||||
if (resolved.stringIndexInfo || resolved.numberIndexInfo && isNumericLiteralName(name) ||
|
||||
getPropertyOfType(targetType, name) || isComparingJsxAttributes && !isUnhyphenatedJsxName(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (targetType.flags & 196608) {
|
||||
for (var _i = 0, _a = targetType.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
if (isKnownProperty(t, name, isComparingJsxAttributes)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function checkJsxAttributesAssignableToTagNameAttributes(openingLikeElement) {
|
||||
var targetAttributesType = isJsxIntrinsicIdentifier(openingLikeElement.tagName) ?
|
||||
getIntrinsicAttributesTypeFromJsxOpeningLikeElement(openingLikeElement) :
|
||||
@@ -31685,7 +31737,16 @@ var ts;
|
||||
error(openingLikeElement, ts.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property, getJsxElementPropertiesName());
|
||||
}
|
||||
else {
|
||||
checkTypeAssignableTo(sourceAttributesType, targetAttributesType, openingLikeElement.attributes.properties.length > 0 ? openingLikeElement.attributes : openingLikeElement);
|
||||
var isSourceAttributeTypeAssignableToTarget = checkTypeAssignableTo(sourceAttributesType, targetAttributesType, openingLikeElement.attributes.properties.length > 0 ? openingLikeElement.attributes : openingLikeElement);
|
||||
if (isSourceAttributeTypeAssignableToTarget && !isTypeAny(sourceAttributesType) && !isTypeAny(targetAttributesType)) {
|
||||
for (var _i = 0, _a = openingLikeElement.attributes.properties; _i < _a.length; _i++) {
|
||||
var attribute = _a[_i];
|
||||
if (ts.isJsxAttribute(attribute) && !isKnownProperty(targetAttributesType, attribute.name.text, true)) {
|
||||
error(attribute, ts.Diagnostics.Property_0_does_not_exist_on_type_1, attribute.name.text, typeToString(targetAttributesType));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function checkJsxExpression(node, checkMode) {
|
||||
@@ -32661,7 +32722,7 @@ var ts;
|
||||
}
|
||||
var valueDecl = expressionType.symbol && getClassLikeDeclarationOfSymbol(expressionType.symbol);
|
||||
if (valueDecl && ts.getModifierFlags(valueDecl) & 128) {
|
||||
error(node, ts.Diagnostics.Cannot_create_an_instance_of_the_abstract_class_0, ts.declarationNameToString(valueDecl.name));
|
||||
error(node, ts.Diagnostics.Cannot_create_an_instance_of_the_abstract_class_0, ts.declarationNameToString(ts.getNameOfDeclaration(valueDecl)));
|
||||
return resolveErrorCall(node);
|
||||
}
|
||||
if (isTypeAny(expressionType)) {
|
||||
@@ -32997,10 +33058,10 @@ var ts;
|
||||
var links = getSymbolLinks(parameter);
|
||||
if (!links.type) {
|
||||
links.type = instantiateType(contextualType, mapper);
|
||||
var name = ts.getNameOfDeclaration(parameter.valueDeclaration);
|
||||
if (links.type === emptyObjectType &&
|
||||
(parameter.valueDeclaration.name.kind === 174 ||
|
||||
parameter.valueDeclaration.name.kind === 175)) {
|
||||
links.type = getTypeFromBindingPattern(parameter.valueDeclaration.name);
|
||||
(name.kind === 174 || name.kind === 175)) {
|
||||
links.type = getTypeFromBindingPattern(name);
|
||||
}
|
||||
assignBindingElementTypes(parameter.valueDeclaration);
|
||||
}
|
||||
@@ -34426,7 +34487,7 @@ var ts;
|
||||
continue;
|
||||
}
|
||||
if (names.get(memberName)) {
|
||||
error(member.symbol.valueDeclaration.name, ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
error(ts.getNameOfDeclaration(member.symbol.valueDeclaration), ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
error(member.name, ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
}
|
||||
else {
|
||||
@@ -34500,7 +34561,8 @@ var ts;
|
||||
return;
|
||||
}
|
||||
function containsSuperCallAsComputedPropertyName(n) {
|
||||
return n.name && containsSuperCall(n.name);
|
||||
var name = ts.getNameOfDeclaration(n);
|
||||
return name && containsSuperCall(name);
|
||||
}
|
||||
function containsSuperCall(n) {
|
||||
if (ts.isSuperCall(n)) {
|
||||
@@ -34727,16 +34789,16 @@ var ts;
|
||||
ts.forEach(overloads, function (o) {
|
||||
var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags_1;
|
||||
if (deviation & 1) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);
|
||||
}
|
||||
else if (deviation & 2) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);
|
||||
}
|
||||
else if (deviation & (8 | 16)) {
|
||||
error(o.name || o, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);
|
||||
error(ts.getNameOfDeclaration(o) || o, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);
|
||||
}
|
||||
else if (deviation & 128) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -34747,7 +34809,7 @@ var ts;
|
||||
ts.forEach(overloads, function (o) {
|
||||
var deviation = ts.hasQuestionToken(o) !== canonicalHasQuestionToken_1;
|
||||
if (deviation) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -34855,7 +34917,7 @@ var ts;
|
||||
}
|
||||
if (duplicateFunctionDeclaration) {
|
||||
ts.forEach(declarations, function (declaration) {
|
||||
error(declaration.name, ts.Diagnostics.Duplicate_function_implementation);
|
||||
error(ts.getNameOfDeclaration(declaration), ts.Diagnostics.Duplicate_function_implementation);
|
||||
});
|
||||
}
|
||||
if (lastSeenNonAmbientDeclaration && !lastSeenNonAmbientDeclaration.body &&
|
||||
@@ -34918,11 +34980,12 @@ var ts;
|
||||
for (var _b = 0, _c = symbol.declarations; _b < _c.length; _b++) {
|
||||
var d = _c[_b];
|
||||
var declarationSpaces = getDeclarationSpaces(d);
|
||||
var name = ts.getNameOfDeclaration(d);
|
||||
if (declarationSpaces & commonDeclarationSpacesForDefaultAndNonDefault) {
|
||||
error(d.name, ts.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, ts.declarationNameToString(d.name));
|
||||
error(name, ts.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, ts.declarationNameToString(name));
|
||||
}
|
||||
else if (declarationSpaces & commonDeclarationSpacesForExportsAndLocals) {
|
||||
error(d.name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(d.name));
|
||||
error(name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(name));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35284,15 +35347,16 @@ var ts;
|
||||
if (!local.isReferenced) {
|
||||
if (local.valueDeclaration && ts.getRootDeclaration(local.valueDeclaration).kind === 146) {
|
||||
var parameter = ts.getRootDeclaration(local.valueDeclaration);
|
||||
var name = ts.getNameOfDeclaration(local.valueDeclaration);
|
||||
if (compilerOptions.noUnusedParameters &&
|
||||
!ts.isParameterPropertyDeclaration(parameter) &&
|
||||
!ts.parameterIsThisKeyword(parameter) &&
|
||||
!parameterNameStartsWithUnderscore(local.valueDeclaration.name)) {
|
||||
error(local.valueDeclaration.name, ts.Diagnostics._0_is_declared_but_never_used, local.name);
|
||||
!parameterNameStartsWithUnderscore(name)) {
|
||||
error(name, ts.Diagnostics._0_is_declared_but_never_used, local.name);
|
||||
}
|
||||
}
|
||||
else if (compilerOptions.noUnusedLocals) {
|
||||
ts.forEach(local.declarations, function (d) { return errorUnusedLocal(d.name || d, local.name); });
|
||||
ts.forEach(local.declarations, function (d) { return errorUnusedLocal(ts.getNameOfDeclaration(d) || d, local.name); });
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -35370,7 +35434,7 @@ var ts;
|
||||
for (var _i = 0, _a = local.declarations; _i < _a.length; _i++) {
|
||||
var declaration = _a[_i];
|
||||
if (!ts.isAmbientModule(declaration)) {
|
||||
errorUnusedLocal(declaration.name, local.name);
|
||||
errorUnusedLocal(ts.getNameOfDeclaration(declaration), local.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -35432,7 +35496,7 @@ var ts;
|
||||
if (getNodeCheckFlags(current) & 4) {
|
||||
var isDeclaration_1 = node.kind !== 71;
|
||||
if (isDeclaration_1) {
|
||||
error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);
|
||||
error(ts.getNameOfDeclaration(node), ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);
|
||||
}
|
||||
else {
|
||||
error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference);
|
||||
@@ -35446,7 +35510,7 @@ var ts;
|
||||
if (getNodeCheckFlags(current) & 8) {
|
||||
var isDeclaration_2 = node.kind !== 71;
|
||||
if (isDeclaration_2) {
|
||||
error(node.name, ts.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);
|
||||
error(ts.getNameOfDeclaration(node), ts.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);
|
||||
}
|
||||
else {
|
||||
error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference);
|
||||
@@ -35642,7 +35706,7 @@ var ts;
|
||||
checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, undefined);
|
||||
}
|
||||
if (!areDeclarationFlagsIdentical(node, symbol.valueDeclaration)) {
|
||||
error(symbol.valueDeclaration.name, ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
error(ts.getNameOfDeclaration(symbol.valueDeclaration), ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
error(node.name, ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
}
|
||||
}
|
||||
@@ -36203,13 +36267,13 @@ var ts;
|
||||
return;
|
||||
}
|
||||
var propDeclaration = prop.valueDeclaration;
|
||||
if (indexKind === 1 && !(propDeclaration ? isNumericName(propDeclaration.name) : isNumericLiteralName(prop.name))) {
|
||||
if (indexKind === 1 && !(propDeclaration ? isNumericName(ts.getNameOfDeclaration(propDeclaration)) : isNumericLiteralName(prop.name))) {
|
||||
return;
|
||||
}
|
||||
var errorNode;
|
||||
if (propDeclaration &&
|
||||
(ts.getSpecialPropertyAssignmentKind(propDeclaration) === 4 ||
|
||||
propDeclaration.name.kind === 144 ||
|
||||
(propDeclaration.kind === 194 ||
|
||||
ts.getNameOfDeclaration(propDeclaration).kind === 144 ||
|
||||
prop.parent === containingType.symbol)) {
|
||||
errorNode = propDeclaration;
|
||||
}
|
||||
@@ -36484,7 +36548,7 @@ var ts;
|
||||
else {
|
||||
errorMessage = ts.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function;
|
||||
}
|
||||
error(derived.valueDeclaration.name || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
||||
error(ts.getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -36752,7 +36816,7 @@ var ts;
|
||||
if (enumSymbol.declarations.length > 1) {
|
||||
ts.forEach(enumSymbol.declarations, function (decl) {
|
||||
if (ts.isConstEnumDeclaration(decl) !== enumIsConst) {
|
||||
error(decl.name, ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const);
|
||||
error(ts.getNameOfDeclaration(decl), ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -45161,7 +45225,7 @@ var ts;
|
||||
if (enabledSubstitutions & 2 && !ts.isInternalName(node)) {
|
||||
var declaration = resolver.getReferencedDeclarationWithCollidingName(node);
|
||||
if (declaration && !(ts.isClassLike(declaration) && isPartOfClassBody(declaration, node))) {
|
||||
return ts.setTextRange(ts.getGeneratedNameForNode(declaration.name), node);
|
||||
return ts.setTextRange(ts.getGeneratedNameForNode(ts.getNameOfDeclaration(declaration)), node);
|
||||
}
|
||||
}
|
||||
return node;
|
||||
@@ -49384,7 +49448,7 @@ var ts;
|
||||
var errorNameNode;
|
||||
var emitJsDocComments = compilerOptions.removeComments ? ts.noop : writeJsDocComments;
|
||||
var emit = compilerOptions.stripInternal ? stripInternal : emitNode;
|
||||
var noDeclare;
|
||||
var needsDeclare = true;
|
||||
var moduleElementDeclarationEmitInfo = [];
|
||||
var asynchronousSubModuleDeclarationEmitInfo;
|
||||
var referencesOutput = "";
|
||||
@@ -49409,11 +49473,11 @@ var ts;
|
||||
}
|
||||
resultHasExternalModuleIndicator = false;
|
||||
if (!isBundledEmit || !ts.isExternalModule(sourceFile)) {
|
||||
noDeclare = false;
|
||||
needsDeclare = true;
|
||||
emitSourceFile(sourceFile);
|
||||
}
|
||||
else if (ts.isExternalModule(sourceFile)) {
|
||||
noDeclare = true;
|
||||
needsDeclare = false;
|
||||
write("declare module \"" + ts.getResolvedExternalModuleName(host, sourceFile) + "\" {");
|
||||
writeLine();
|
||||
increaseIndent();
|
||||
@@ -49830,9 +49894,9 @@ var ts;
|
||||
}
|
||||
}
|
||||
}
|
||||
function emitTempVariableDeclaration(expr, baseName, diagnostic) {
|
||||
function emitTempVariableDeclaration(expr, baseName, diagnostic, needsDeclare) {
|
||||
var tempVarName = getExportTempVariableName(baseName);
|
||||
if (!noDeclare) {
|
||||
if (needsDeclare) {
|
||||
write("declare ");
|
||||
}
|
||||
write("const ");
|
||||
@@ -49853,7 +49917,7 @@ var ts;
|
||||
var tempVarName = emitTempVariableDeclaration(node.expression, "_default", {
|
||||
diagnosticMessage: ts.Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0,
|
||||
errorNode: node
|
||||
});
|
||||
}, needsDeclare);
|
||||
write(node.isExportEquals ? "export = " : "export default ");
|
||||
write(tempVarName);
|
||||
}
|
||||
@@ -49932,7 +49996,7 @@ var ts;
|
||||
if (modifiers & 512) {
|
||||
write("default ");
|
||||
}
|
||||
else if (node.kind !== 230 && !noDeclare) {
|
||||
else if (node.kind !== 230 && needsDeclare) {
|
||||
write("declare ");
|
||||
}
|
||||
}
|
||||
@@ -50282,7 +50346,7 @@ var ts;
|
||||
return {
|
||||
diagnosticMessage: diagnosticMessage,
|
||||
errorNode: node,
|
||||
typeName: node.parent.parent.name
|
||||
typeName: ts.getNameOfDeclaration(node.parent.parent)
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -50308,7 +50372,7 @@ var ts;
|
||||
diagnosticMessage: ts.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,
|
||||
errorNode: baseTypeNode,
|
||||
typeName: node.name
|
||||
});
|
||||
}, !ts.findAncestor(node, function (n) { return n.kind === 233; }));
|
||||
}
|
||||
emitJsDocComments(node);
|
||||
emitModuleElementDeclarationFlags(node);
|
||||
|
||||
+195
-122
@@ -6598,6 +6598,36 @@ var ts;
|
||||
return false;
|
||||
}
|
||||
ts.isDeclarationName = isDeclarationName;
|
||||
function getNameOfDeclaration(declaration) {
|
||||
if (!declaration) {
|
||||
return undefined;
|
||||
}
|
||||
if (declaration.kind === 194) {
|
||||
var kind = getSpecialPropertyAssignmentKind(declaration);
|
||||
var lhs = declaration.left;
|
||||
switch (kind) {
|
||||
case 0:
|
||||
case 2:
|
||||
return undefined;
|
||||
case 1:
|
||||
if (lhs.kind === 71) {
|
||||
return lhs.name;
|
||||
}
|
||||
else {
|
||||
return lhs.expression.name;
|
||||
}
|
||||
case 4:
|
||||
case 5:
|
||||
return lhs.name;
|
||||
case 3:
|
||||
return lhs.expression.name;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return declaration.name;
|
||||
}
|
||||
}
|
||||
ts.getNameOfDeclaration = getNameOfDeclaration;
|
||||
function isLiteralComputedPropertyDeclarationName(node) {
|
||||
return (node.kind === 9 || node.kind === 8) &&
|
||||
node.parent.kind === 144 &&
|
||||
@@ -6790,7 +6820,8 @@ var ts;
|
||||
}
|
||||
ts.isStringOrNumericLiteral = isStringOrNumericLiteral;
|
||||
function hasDynamicName(declaration) {
|
||||
return declaration.name && isDynamicName(declaration.name);
|
||||
var name = getNameOfDeclaration(declaration);
|
||||
return name && isDynamicName(name);
|
||||
}
|
||||
ts.hasDynamicName = hasDynamicName;
|
||||
function isDynamicName(name) {
|
||||
@@ -13021,9 +13052,10 @@ var ts;
|
||||
}
|
||||
ts.getDeclarationName = getDeclarationName;
|
||||
function getName(node, allowComments, allowSourceMaps, emitFlags) {
|
||||
if (node.name && ts.isIdentifier(node.name) && !ts.isGeneratedIdentifier(node.name)) {
|
||||
var name = ts.getMutableClone(node.name);
|
||||
emitFlags |= ts.getEmitFlags(node.name);
|
||||
var nodeName = ts.getNameOfDeclaration(node);
|
||||
if (nodeName && ts.isIdentifier(nodeName) && !ts.isGeneratedIdentifier(nodeName)) {
|
||||
var name = ts.getMutableClone(nodeName);
|
||||
emitFlags |= ts.getEmitFlags(nodeName);
|
||||
if (!allowSourceMaps)
|
||||
emitFlags |= 48;
|
||||
if (!allowComments)
|
||||
@@ -19284,19 +19316,20 @@ var ts;
|
||||
}
|
||||
}
|
||||
function getDeclarationName(node) {
|
||||
if (node.name) {
|
||||
var name = ts.getNameOfDeclaration(node);
|
||||
if (name) {
|
||||
if (ts.isAmbientModule(node)) {
|
||||
return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + node.name.text + "\"";
|
||||
return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + name.text + "\"";
|
||||
}
|
||||
if (node.name.kind === 144) {
|
||||
var nameExpression = node.name.expression;
|
||||
if (name.kind === 144) {
|
||||
var nameExpression = name.expression;
|
||||
if (ts.isStringOrNumericLiteral(nameExpression)) {
|
||||
return nameExpression.text;
|
||||
}
|
||||
ts.Debug.assert(ts.isWellKnownSymbolSyntactically(nameExpression));
|
||||
return ts.getPropertyNameForKnownSymbolName(nameExpression.name.text);
|
||||
}
|
||||
return node.name.text;
|
||||
return name.text;
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 152:
|
||||
@@ -19392,9 +19425,9 @@ var ts;
|
||||
}
|
||||
}
|
||||
ts.forEach(symbol.declarations, function (declaration) {
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message_1, getDisplayName(declaration)));
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(ts.getNameOfDeclaration(declaration) || declaration, message_1, getDisplayName(declaration)));
|
||||
});
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message_1, getDisplayName(node)));
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(ts.getNameOfDeclaration(node) || node, message_1, getDisplayName(node)));
|
||||
symbol = createSymbol(0, name);
|
||||
}
|
||||
}
|
||||
@@ -22306,16 +22339,16 @@ var ts;
|
||||
recordMergedSymbol(target, source);
|
||||
}
|
||||
else if (target.flags & 1024) {
|
||||
error(source.declarations[0].name, ts.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, symbolToString(target));
|
||||
error(ts.getNameOfDeclaration(source.declarations[0]), ts.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, symbolToString(target));
|
||||
}
|
||||
else {
|
||||
var message_2 = target.flags & 2 || source.flags & 2
|
||||
? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0;
|
||||
ts.forEach(source.declarations, function (node) {
|
||||
error(node.name ? node.name : node, message_2, symbolToString(source));
|
||||
error(ts.getNameOfDeclaration(node) || node, message_2, symbolToString(source));
|
||||
});
|
||||
ts.forEach(target.declarations, function (node) {
|
||||
error(node.name ? node.name : node, message_2, symbolToString(source));
|
||||
error(ts.getNameOfDeclaration(node) || node, message_2, symbolToString(source));
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -22426,7 +22459,8 @@ var ts;
|
||||
var useFile = ts.getSourceFileOfNode(usage);
|
||||
if (declarationFile !== useFile) {
|
||||
if ((modulekind && (declarationFile.externalModuleIndicator || useFile.externalModuleIndicator)) ||
|
||||
(!compilerOptions.outFile && !compilerOptions.out)) {
|
||||
(!compilerOptions.outFile && !compilerOptions.out) ||
|
||||
ts.isInAmbientContext(declaration)) {
|
||||
return true;
|
||||
}
|
||||
if (isUsedInFunctionOrInstanceProperty(usage, declaration)) {
|
||||
@@ -22787,13 +22821,13 @@ var ts;
|
||||
ts.Debug.assert(declaration !== undefined, "Declaration to checkResolvedBlockScopedVariable is undefined");
|
||||
if (!ts.isInAmbientContext(declaration) && !isBlockScopedNameDeclaredBeforeUse(declaration, errorLocation)) {
|
||||
if (result.flags & 2) {
|
||||
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
else if (result.flags & 32) {
|
||||
error(errorLocation, ts.Diagnostics.Class_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Class_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
else if (result.flags & 384) {
|
||||
error(errorLocation, ts.Diagnostics.Enum_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Enum_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24003,8 +24037,9 @@ var ts;
|
||||
function getNameOfSymbol(symbol) {
|
||||
var declaration = ts.firstOrUndefined(symbol.declarations);
|
||||
if (declaration) {
|
||||
if (declaration.name) {
|
||||
return ts.declarationNameToString(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
return ts.declarationNameToString(name);
|
||||
}
|
||||
if (declaration.parent && declaration.parent.kind === 226) {
|
||||
return ts.declarationNameToString(declaration.parent.name);
|
||||
@@ -24085,8 +24120,9 @@ var ts;
|
||||
function getNameOfSymbol(symbol) {
|
||||
if (symbol.declarations && symbol.declarations.length) {
|
||||
var declaration = symbol.declarations[0];
|
||||
if (declaration.name) {
|
||||
return ts.declarationNameToString(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
return ts.declarationNameToString(name);
|
||||
}
|
||||
if (declaration.parent && declaration.parent.kind === 226) {
|
||||
return ts.declarationNameToString(declaration.parent.name);
|
||||
@@ -26915,8 +26951,9 @@ var ts;
|
||||
type = anyType;
|
||||
if (noImplicitAny) {
|
||||
var declaration = signature.declaration;
|
||||
if (declaration.name) {
|
||||
error(declaration.name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(declaration.name));
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
error(name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(name));
|
||||
}
|
||||
else {
|
||||
error(declaration, ts.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions);
|
||||
@@ -28836,24 +28873,6 @@ var ts;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
function isKnownProperty(type, name, isComparingJsxAttributes) {
|
||||
if (type.flags & 32768) {
|
||||
var resolved = resolveStructuredTypeMembers(type);
|
||||
if (resolved.stringIndexInfo || resolved.numberIndexInfo && isNumericLiteralName(name) ||
|
||||
getPropertyOfType(type, name) || isComparingJsxAttributes && !isUnhyphenatedJsxName(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (type.flags & 196608) {
|
||||
for (var _i = 0, _a = type.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
if (isKnownProperty(t, name, isComparingJsxAttributes)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function hasExcessProperties(source, target, reportErrors) {
|
||||
if (maybeTypeOfKind(target, 32768) && !(getObjectFlags(target) & 512)) {
|
||||
var isComparingJsxAttributes = !!(source.flags & 33554432);
|
||||
@@ -29867,7 +29886,7 @@ var ts;
|
||||
default:
|
||||
diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type;
|
||||
}
|
||||
error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString);
|
||||
error(declaration, diagnostic, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)), typeAsString);
|
||||
}
|
||||
function reportErrorsFromWidening(declaration, type) {
|
||||
if (produceDiagnostics && noImplicitAny && type.flags & 2097152) {
|
||||
@@ -31419,7 +31438,7 @@ var ts;
|
||||
if (type === autoType || type === autoArrayType) {
|
||||
if (flowType === autoType || flowType === autoArrayType) {
|
||||
if (noImplicitAny) {
|
||||
error(declaration.name, ts.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));
|
||||
error(ts.getNameOfDeclaration(declaration), ts.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));
|
||||
error(node, ts.Diagnostics.Variable_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType));
|
||||
}
|
||||
return convertAutoToAny(flowType);
|
||||
@@ -32417,6 +32436,8 @@ var ts;
|
||||
var spread = emptyObjectType;
|
||||
var attributesArray = [];
|
||||
var hasSpreadAnyType = false;
|
||||
var explicitlySpecifyChildrenAttribute = false;
|
||||
var jsxChildrenPropertyName = getJsxElementChildrenPropertyname();
|
||||
for (var _i = 0, _a = attributes.properties; _i < _a.length; _i++) {
|
||||
var attributeDecl = _a[_i];
|
||||
var member = attributeDecl.symbol;
|
||||
@@ -32434,6 +32455,9 @@ var ts;
|
||||
attributeSymbol.target = member;
|
||||
attributesTable.set(attributeSymbol.name, attributeSymbol);
|
||||
attributesArray.push(attributeSymbol);
|
||||
if (attributeDecl.name.text === jsxChildrenPropertyName) {
|
||||
explicitlySpecifyChildrenAttribute = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
ts.Debug.assert(attributeDecl.kind === 255);
|
||||
@@ -32442,11 +32466,7 @@ var ts;
|
||||
attributesArray = [];
|
||||
attributesTable = ts.createMap();
|
||||
}
|
||||
var exprType = checkExpression(attributeDecl.expression);
|
||||
if (!isValidSpreadType(exprType)) {
|
||||
error(attributeDecl, ts.Diagnostics.Spread_types_may_only_be_created_from_object_types);
|
||||
hasSpreadAnyType = true;
|
||||
}
|
||||
var exprType = getApparentType(checkExpression(attributeDecl.expression));
|
||||
if (isTypeAny(exprType)) {
|
||||
hasSpreadAnyType = true;
|
||||
}
|
||||
@@ -32485,9 +32505,8 @@ var ts;
|
||||
childrenTypes.push(checkExpression(child, checkMode));
|
||||
}
|
||||
}
|
||||
var jsxChildrenPropertyName = getJsxElementChildrenPropertyname();
|
||||
if (!hasSpreadAnyType && jsxChildrenPropertyName && jsxChildrenPropertyName !== "") {
|
||||
if (attributesTable.has(jsxChildrenPropertyName)) {
|
||||
if (explicitlySpecifyChildrenAttribute) {
|
||||
error(attributes, ts.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten, jsxChildrenPropertyName);
|
||||
}
|
||||
var childrenPropSymbol = createSymbol(4 | 134217728, jsxChildrenPropertyName);
|
||||
@@ -32500,8 +32519,7 @@ var ts;
|
||||
return hasSpreadAnyType ? anyType : createJsxAttributesType(attributes.symbol, attributesTable);
|
||||
function createJsxAttributesType(symbol, attributesTable) {
|
||||
var result = createAnonymousType(symbol, attributesTable, emptyArray, emptyArray, undefined, undefined);
|
||||
var freshObjectLiteralFlag = compilerOptions.suppressExcessPropertyErrors ? 0 : 1048576;
|
||||
result.flags |= 33554432 | 4194304 | freshObjectLiteralFlag;
|
||||
result.flags |= 33554432 | 4194304;
|
||||
result.objectFlags |= 128;
|
||||
return result;
|
||||
}
|
||||
@@ -32601,6 +32619,20 @@ var ts;
|
||||
}
|
||||
return _jsxElementChildrenPropertyName;
|
||||
}
|
||||
function getApparentTypeOfJsxPropsType(propsType) {
|
||||
if (!propsType) {
|
||||
return undefined;
|
||||
}
|
||||
if (propsType.flags & 131072) {
|
||||
var propsApparentType = [];
|
||||
for (var _i = 0, _a = propsType.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
propsApparentType.push(getApparentType(t));
|
||||
}
|
||||
return getIntersectionType(propsApparentType);
|
||||
}
|
||||
return getApparentType(propsType);
|
||||
}
|
||||
function defaultTryGetJsxStatelessFunctionAttributesType(openingLikeElement, elementType, elemInstanceType, elementClassType) {
|
||||
ts.Debug.assert(!(elementType.flags & 65536));
|
||||
if (!elementClassType || !isTypeAssignableTo(elemInstanceType, elementClassType)) {
|
||||
@@ -32610,6 +32642,7 @@ var ts;
|
||||
if (callSignature !== unknownSignature) {
|
||||
var callReturnType = callSignature && getReturnTypeOfSignature(callSignature);
|
||||
var paramType = callReturnType && (callSignature.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(callSignature.parameters[0]));
|
||||
paramType = getApparentTypeOfJsxPropsType(paramType);
|
||||
if (callReturnType && isTypeAssignableTo(callReturnType, jsxStatelessElementType)) {
|
||||
var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes);
|
||||
if (intrinsicAttributes !== unknownType) {
|
||||
@@ -32635,6 +32668,7 @@ var ts;
|
||||
var candidate = candidatesOutArray_1[_i];
|
||||
var callReturnType = getReturnTypeOfSignature(candidate);
|
||||
var paramType = callReturnType && (candidate.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(candidate.parameters[0]));
|
||||
paramType = getApparentTypeOfJsxPropsType(paramType);
|
||||
if (callReturnType && isTypeAssignableTo(callReturnType, jsxStatelessElementType)) {
|
||||
var shouldBeCandidate = true;
|
||||
for (var _a = 0, _b = openingLikeElement.attributes.properties; _a < _b.length; _a++) {
|
||||
@@ -32838,6 +32872,24 @@ var ts;
|
||||
}
|
||||
checkJsxAttributesAssignableToTagNameAttributes(node);
|
||||
}
|
||||
function isKnownProperty(targetType, name, isComparingJsxAttributes) {
|
||||
if (targetType.flags & 32768) {
|
||||
var resolved = resolveStructuredTypeMembers(targetType);
|
||||
if (resolved.stringIndexInfo || resolved.numberIndexInfo && isNumericLiteralName(name) ||
|
||||
getPropertyOfType(targetType, name) || isComparingJsxAttributes && !isUnhyphenatedJsxName(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (targetType.flags & 196608) {
|
||||
for (var _i = 0, _a = targetType.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
if (isKnownProperty(t, name, isComparingJsxAttributes)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function checkJsxAttributesAssignableToTagNameAttributes(openingLikeElement) {
|
||||
var targetAttributesType = isJsxIntrinsicIdentifier(openingLikeElement.tagName) ?
|
||||
getIntrinsicAttributesTypeFromJsxOpeningLikeElement(openingLikeElement) :
|
||||
@@ -32849,7 +32901,16 @@ var ts;
|
||||
error(openingLikeElement, ts.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property, getJsxElementPropertiesName());
|
||||
}
|
||||
else {
|
||||
checkTypeAssignableTo(sourceAttributesType, targetAttributesType, openingLikeElement.attributes.properties.length > 0 ? openingLikeElement.attributes : openingLikeElement);
|
||||
var isSourceAttributeTypeAssignableToTarget = checkTypeAssignableTo(sourceAttributesType, targetAttributesType, openingLikeElement.attributes.properties.length > 0 ? openingLikeElement.attributes : openingLikeElement);
|
||||
if (isSourceAttributeTypeAssignableToTarget && !isTypeAny(sourceAttributesType) && !isTypeAny(targetAttributesType)) {
|
||||
for (var _i = 0, _a = openingLikeElement.attributes.properties; _i < _a.length; _i++) {
|
||||
var attribute = _a[_i];
|
||||
if (ts.isJsxAttribute(attribute) && !isKnownProperty(targetAttributesType, attribute.name.text, true)) {
|
||||
error(attribute, ts.Diagnostics.Property_0_does_not_exist_on_type_1, attribute.name.text, typeToString(targetAttributesType));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function checkJsxExpression(node, checkMode) {
|
||||
@@ -33825,7 +33886,7 @@ var ts;
|
||||
}
|
||||
var valueDecl = expressionType.symbol && getClassLikeDeclarationOfSymbol(expressionType.symbol);
|
||||
if (valueDecl && ts.getModifierFlags(valueDecl) & 128) {
|
||||
error(node, ts.Diagnostics.Cannot_create_an_instance_of_the_abstract_class_0, ts.declarationNameToString(valueDecl.name));
|
||||
error(node, ts.Diagnostics.Cannot_create_an_instance_of_the_abstract_class_0, ts.declarationNameToString(ts.getNameOfDeclaration(valueDecl)));
|
||||
return resolveErrorCall(node);
|
||||
}
|
||||
if (isTypeAny(expressionType)) {
|
||||
@@ -34161,10 +34222,10 @@ var ts;
|
||||
var links = getSymbolLinks(parameter);
|
||||
if (!links.type) {
|
||||
links.type = instantiateType(contextualType, mapper);
|
||||
var name = ts.getNameOfDeclaration(parameter.valueDeclaration);
|
||||
if (links.type === emptyObjectType &&
|
||||
(parameter.valueDeclaration.name.kind === 174 ||
|
||||
parameter.valueDeclaration.name.kind === 175)) {
|
||||
links.type = getTypeFromBindingPattern(parameter.valueDeclaration.name);
|
||||
(name.kind === 174 || name.kind === 175)) {
|
||||
links.type = getTypeFromBindingPattern(name);
|
||||
}
|
||||
assignBindingElementTypes(parameter.valueDeclaration);
|
||||
}
|
||||
@@ -35597,7 +35658,7 @@ var ts;
|
||||
continue;
|
||||
}
|
||||
if (names.get(memberName)) {
|
||||
error(member.symbol.valueDeclaration.name, ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
error(ts.getNameOfDeclaration(member.symbol.valueDeclaration), ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
error(member.name, ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
}
|
||||
else {
|
||||
@@ -35671,7 +35732,8 @@ var ts;
|
||||
return;
|
||||
}
|
||||
function containsSuperCallAsComputedPropertyName(n) {
|
||||
return n.name && containsSuperCall(n.name);
|
||||
var name = ts.getNameOfDeclaration(n);
|
||||
return name && containsSuperCall(name);
|
||||
}
|
||||
function containsSuperCall(n) {
|
||||
if (ts.isSuperCall(n)) {
|
||||
@@ -35898,16 +35960,16 @@ var ts;
|
||||
ts.forEach(overloads, function (o) {
|
||||
var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags_1;
|
||||
if (deviation & 1) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);
|
||||
}
|
||||
else if (deviation & 2) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);
|
||||
}
|
||||
else if (deviation & (8 | 16)) {
|
||||
error(o.name || o, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);
|
||||
error(ts.getNameOfDeclaration(o) || o, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);
|
||||
}
|
||||
else if (deviation & 128) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -35918,7 +35980,7 @@ var ts;
|
||||
ts.forEach(overloads, function (o) {
|
||||
var deviation = ts.hasQuestionToken(o) !== canonicalHasQuestionToken_1;
|
||||
if (deviation) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -36026,7 +36088,7 @@ var ts;
|
||||
}
|
||||
if (duplicateFunctionDeclaration) {
|
||||
ts.forEach(declarations, function (declaration) {
|
||||
error(declaration.name, ts.Diagnostics.Duplicate_function_implementation);
|
||||
error(ts.getNameOfDeclaration(declaration), ts.Diagnostics.Duplicate_function_implementation);
|
||||
});
|
||||
}
|
||||
if (lastSeenNonAmbientDeclaration && !lastSeenNonAmbientDeclaration.body &&
|
||||
@@ -36089,11 +36151,12 @@ var ts;
|
||||
for (var _b = 0, _c = symbol.declarations; _b < _c.length; _b++) {
|
||||
var d = _c[_b];
|
||||
var declarationSpaces = getDeclarationSpaces(d);
|
||||
var name = ts.getNameOfDeclaration(d);
|
||||
if (declarationSpaces & commonDeclarationSpacesForDefaultAndNonDefault) {
|
||||
error(d.name, ts.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, ts.declarationNameToString(d.name));
|
||||
error(name, ts.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, ts.declarationNameToString(name));
|
||||
}
|
||||
else if (declarationSpaces & commonDeclarationSpacesForExportsAndLocals) {
|
||||
error(d.name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(d.name));
|
||||
error(name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(name));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -36455,15 +36518,16 @@ var ts;
|
||||
if (!local.isReferenced) {
|
||||
if (local.valueDeclaration && ts.getRootDeclaration(local.valueDeclaration).kind === 146) {
|
||||
var parameter = ts.getRootDeclaration(local.valueDeclaration);
|
||||
var name = ts.getNameOfDeclaration(local.valueDeclaration);
|
||||
if (compilerOptions.noUnusedParameters &&
|
||||
!ts.isParameterPropertyDeclaration(parameter) &&
|
||||
!ts.parameterIsThisKeyword(parameter) &&
|
||||
!parameterNameStartsWithUnderscore(local.valueDeclaration.name)) {
|
||||
error(local.valueDeclaration.name, ts.Diagnostics._0_is_declared_but_never_used, local.name);
|
||||
!parameterNameStartsWithUnderscore(name)) {
|
||||
error(name, ts.Diagnostics._0_is_declared_but_never_used, local.name);
|
||||
}
|
||||
}
|
||||
else if (compilerOptions.noUnusedLocals) {
|
||||
ts.forEach(local.declarations, function (d) { return errorUnusedLocal(d.name || d, local.name); });
|
||||
ts.forEach(local.declarations, function (d) { return errorUnusedLocal(ts.getNameOfDeclaration(d) || d, local.name); });
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -36541,7 +36605,7 @@ var ts;
|
||||
for (var _i = 0, _a = local.declarations; _i < _a.length; _i++) {
|
||||
var declaration = _a[_i];
|
||||
if (!ts.isAmbientModule(declaration)) {
|
||||
errorUnusedLocal(declaration.name, local.name);
|
||||
errorUnusedLocal(ts.getNameOfDeclaration(declaration), local.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -36603,7 +36667,7 @@ var ts;
|
||||
if (getNodeCheckFlags(current) & 4) {
|
||||
var isDeclaration_1 = node.kind !== 71;
|
||||
if (isDeclaration_1) {
|
||||
error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);
|
||||
error(ts.getNameOfDeclaration(node), ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);
|
||||
}
|
||||
else {
|
||||
error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference);
|
||||
@@ -36617,7 +36681,7 @@ var ts;
|
||||
if (getNodeCheckFlags(current) & 8) {
|
||||
var isDeclaration_2 = node.kind !== 71;
|
||||
if (isDeclaration_2) {
|
||||
error(node.name, ts.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);
|
||||
error(ts.getNameOfDeclaration(node), ts.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);
|
||||
}
|
||||
else {
|
||||
error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference);
|
||||
@@ -36813,7 +36877,7 @@ var ts;
|
||||
checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, undefined);
|
||||
}
|
||||
if (!areDeclarationFlagsIdentical(node, symbol.valueDeclaration)) {
|
||||
error(symbol.valueDeclaration.name, ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
error(ts.getNameOfDeclaration(symbol.valueDeclaration), ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
error(node.name, ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
}
|
||||
}
|
||||
@@ -37374,13 +37438,13 @@ var ts;
|
||||
return;
|
||||
}
|
||||
var propDeclaration = prop.valueDeclaration;
|
||||
if (indexKind === 1 && !(propDeclaration ? isNumericName(propDeclaration.name) : isNumericLiteralName(prop.name))) {
|
||||
if (indexKind === 1 && !(propDeclaration ? isNumericName(ts.getNameOfDeclaration(propDeclaration)) : isNumericLiteralName(prop.name))) {
|
||||
return;
|
||||
}
|
||||
var errorNode;
|
||||
if (propDeclaration &&
|
||||
(ts.getSpecialPropertyAssignmentKind(propDeclaration) === 4 ||
|
||||
propDeclaration.name.kind === 144 ||
|
||||
(propDeclaration.kind === 194 ||
|
||||
ts.getNameOfDeclaration(propDeclaration).kind === 144 ||
|
||||
prop.parent === containingType.symbol)) {
|
||||
errorNode = propDeclaration;
|
||||
}
|
||||
@@ -37655,7 +37719,7 @@ var ts;
|
||||
else {
|
||||
errorMessage = ts.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function;
|
||||
}
|
||||
error(derived.valueDeclaration.name || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
||||
error(ts.getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -37923,7 +37987,7 @@ var ts;
|
||||
if (enumSymbol.declarations.length > 1) {
|
||||
ts.forEach(enumSymbol.declarations, function (decl) {
|
||||
if (ts.isConstEnumDeclaration(decl) !== enumIsConst) {
|
||||
error(decl.name, ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const);
|
||||
error(ts.getNameOfDeclaration(decl), ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -46420,7 +46484,7 @@ var ts;
|
||||
if (enabledSubstitutions & 2 && !ts.isInternalName(node)) {
|
||||
var declaration = resolver.getReferencedDeclarationWithCollidingName(node);
|
||||
if (declaration && !(ts.isClassLike(declaration) && isPartOfClassBody(declaration, node))) {
|
||||
return ts.setTextRange(ts.getGeneratedNameForNode(declaration.name), node);
|
||||
return ts.setTextRange(ts.getGeneratedNameForNode(ts.getNameOfDeclaration(declaration)), node);
|
||||
}
|
||||
}
|
||||
return node;
|
||||
@@ -50095,7 +50159,7 @@ var ts;
|
||||
var errorNameNode;
|
||||
var emitJsDocComments = compilerOptions.removeComments ? ts.noop : writeJsDocComments;
|
||||
var emit = compilerOptions.stripInternal ? stripInternal : emitNode;
|
||||
var noDeclare;
|
||||
var needsDeclare = true;
|
||||
var moduleElementDeclarationEmitInfo = [];
|
||||
var asynchronousSubModuleDeclarationEmitInfo;
|
||||
var referencesOutput = "";
|
||||
@@ -50120,11 +50184,11 @@ var ts;
|
||||
}
|
||||
resultHasExternalModuleIndicator = false;
|
||||
if (!isBundledEmit || !ts.isExternalModule(sourceFile)) {
|
||||
noDeclare = false;
|
||||
needsDeclare = true;
|
||||
emitSourceFile(sourceFile);
|
||||
}
|
||||
else if (ts.isExternalModule(sourceFile)) {
|
||||
noDeclare = true;
|
||||
needsDeclare = false;
|
||||
write("declare module \"" + ts.getResolvedExternalModuleName(host, sourceFile) + "\" {");
|
||||
writeLine();
|
||||
increaseIndent();
|
||||
@@ -50541,9 +50605,9 @@ var ts;
|
||||
}
|
||||
}
|
||||
}
|
||||
function emitTempVariableDeclaration(expr, baseName, diagnostic) {
|
||||
function emitTempVariableDeclaration(expr, baseName, diagnostic, needsDeclare) {
|
||||
var tempVarName = getExportTempVariableName(baseName);
|
||||
if (!noDeclare) {
|
||||
if (needsDeclare) {
|
||||
write("declare ");
|
||||
}
|
||||
write("const ");
|
||||
@@ -50564,7 +50628,7 @@ var ts;
|
||||
var tempVarName = emitTempVariableDeclaration(node.expression, "_default", {
|
||||
diagnosticMessage: ts.Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0,
|
||||
errorNode: node
|
||||
});
|
||||
}, needsDeclare);
|
||||
write(node.isExportEquals ? "export = " : "export default ");
|
||||
write(tempVarName);
|
||||
}
|
||||
@@ -50643,7 +50707,7 @@ var ts;
|
||||
if (modifiers & 512) {
|
||||
write("default ");
|
||||
}
|
||||
else if (node.kind !== 230 && !noDeclare) {
|
||||
else if (node.kind !== 230 && needsDeclare) {
|
||||
write("declare ");
|
||||
}
|
||||
}
|
||||
@@ -50993,7 +51057,7 @@ var ts;
|
||||
return {
|
||||
diagnosticMessage: diagnosticMessage,
|
||||
errorNode: node,
|
||||
typeName: node.parent.parent.name
|
||||
typeName: ts.getNameOfDeclaration(node.parent.parent)
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -51019,7 +51083,7 @@ var ts;
|
||||
diagnosticMessage: ts.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,
|
||||
errorNode: baseTypeNode,
|
||||
typeName: node.name
|
||||
});
|
||||
}, !ts.findAncestor(node, function (n) { return n.kind === 233; }));
|
||||
}
|
||||
emitJsDocComments(node);
|
||||
emitModuleElementDeclarationFlags(node);
|
||||
@@ -57712,7 +57776,7 @@ var ts;
|
||||
case 153:
|
||||
case 154:
|
||||
case 233:
|
||||
return node.parent.name === node;
|
||||
return ts.getNameOfDeclaration(node.parent) === node;
|
||||
case 180:
|
||||
return node.parent.argumentExpression === node;
|
||||
case 144:
|
||||
@@ -61156,7 +61220,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
else {
|
||||
existingName = m.name.text;
|
||||
existingName = ts.getNameOfDeclaration(m).text;
|
||||
}
|
||||
existingMemberNames.set(existingName, true);
|
||||
}
|
||||
@@ -62224,8 +62288,8 @@ var ts;
|
||||
if (symbol.name !== "default") {
|
||||
return symbol.name;
|
||||
}
|
||||
var name = ts.forEach(symbol.declarations, function (_a) {
|
||||
var name = _a.name;
|
||||
var name = ts.forEach(symbol.declarations, function (decl) {
|
||||
var name = ts.getNameOfDeclaration(decl);
|
||||
return name && name.kind === 71 && name.text;
|
||||
});
|
||||
ts.Debug.assert(!!name);
|
||||
@@ -62877,7 +62941,7 @@ var ts;
|
||||
var flags = _a.flags, valueDeclaration = _a.valueDeclaration;
|
||||
var shorthandValueSymbol = state.checker.getShorthandAssignmentValueSymbol(valueDeclaration);
|
||||
if (!(flags & 134217728) && search.includes(shorthandValueSymbol)) {
|
||||
addReference(valueDeclaration.name, shorthandValueSymbol, search.location, state);
|
||||
addReference(ts.getNameOfDeclaration(valueDeclaration), shorthandValueSymbol, search.location, state);
|
||||
}
|
||||
}
|
||||
function addReference(referenceLocation, relatedSymbol, searchLocation, state) {
|
||||
@@ -63626,7 +63690,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function createDefinitionInfo(node, symbolKind, symbolName, containerName) {
|
||||
return createDefinitionInfoFromName(node.name || node, symbolKind, symbolName, containerName);
|
||||
return createDefinitionInfoFromName(ts.getNameOfDeclaration(node) || node, symbolKind, symbolName, containerName);
|
||||
}
|
||||
function createDefinitionInfoFromName(name, symbolKind, symbolName, containerName) {
|
||||
var sourceFile = name.getSourceFile();
|
||||
@@ -64149,16 +64213,19 @@ var ts;
|
||||
return undefined;
|
||||
}
|
||||
function tryAddSingleDeclarationName(declaration, containers) {
|
||||
if (declaration && declaration.name) {
|
||||
var text = getTextOfIdentifierOrLiteral(declaration.name);
|
||||
if (text !== undefined) {
|
||||
containers.unshift(text);
|
||||
}
|
||||
else if (declaration.name.kind === 144) {
|
||||
return tryAddComputedPropertyName(declaration.name.expression, containers, true);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
if (declaration) {
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
var text = getTextOfIdentifierOrLiteral(name);
|
||||
if (text !== undefined) {
|
||||
containers.unshift(text);
|
||||
}
|
||||
else if (name.kind === 144) {
|
||||
return tryAddComputedPropertyName(name.expression, containers, true);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -64182,8 +64249,9 @@ var ts;
|
||||
}
|
||||
function getContainers(declaration) {
|
||||
var containers = [];
|
||||
if (declaration.name.kind === 144) {
|
||||
if (!tryAddComputedPropertyName(declaration.name.expression, containers, false)) {
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name.kind === 144) {
|
||||
if (!tryAddComputedPropertyName(name.expression, containers, false)) {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
@@ -64216,6 +64284,7 @@ var ts;
|
||||
function createNavigateToItem(rawItem) {
|
||||
var declaration = rawItem.declaration;
|
||||
var container = ts.getContainerNode(declaration);
|
||||
var containerName = container && ts.getNameOfDeclaration(container);
|
||||
return {
|
||||
name: rawItem.name,
|
||||
kind: ts.getNodeKind(declaration),
|
||||
@@ -64224,8 +64293,8 @@ var ts;
|
||||
isCaseSensitive: rawItem.isCaseSensitive,
|
||||
fileName: rawItem.fileName,
|
||||
textSpan: ts.createTextSpanFromNode(declaration),
|
||||
containerName: container && container.name ? container.name.text : "",
|
||||
containerKind: container && container.name ? ts.getNodeKind(container) : ""
|
||||
containerName: containerName ? containerName.text : "",
|
||||
containerKind: containerName ? ts.getNodeKind(container) : ""
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -64439,8 +64508,8 @@ var ts;
|
||||
function mergeChildren(children) {
|
||||
var nameToItems = ts.createMap();
|
||||
ts.filterMutate(children, function (child) {
|
||||
var decl = child.node;
|
||||
var name = decl.name && nodeText(decl.name);
|
||||
var declName = ts.getNameOfDeclaration(child.node);
|
||||
var name = declName && nodeText(declName);
|
||||
if (!name) {
|
||||
return true;
|
||||
}
|
||||
@@ -64518,9 +64587,9 @@ var ts;
|
||||
if (node.kind === 233) {
|
||||
return getModuleName(node);
|
||||
}
|
||||
var decl = node;
|
||||
if (decl.name) {
|
||||
return ts.getPropertyNameForPropertyNameNode(decl.name);
|
||||
var declName = ts.getNameOfDeclaration(node);
|
||||
if (declName) {
|
||||
return ts.getPropertyNameForPropertyNameNode(declName);
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 186:
|
||||
@@ -64537,7 +64606,7 @@ var ts;
|
||||
if (node.kind === 233) {
|
||||
return getModuleName(node);
|
||||
}
|
||||
var name = node.name;
|
||||
var name = ts.getNameOfDeclaration(node);
|
||||
if (name) {
|
||||
var text = nodeText(name);
|
||||
if (text.length > 0) {
|
||||
@@ -68165,7 +68234,7 @@ var ts;
|
||||
}
|
||||
case 149:
|
||||
case 146:
|
||||
return node.name.kind;
|
||||
return ts.getNameOfDeclaration(node).kind;
|
||||
}
|
||||
}
|
||||
function getDynamicIndentation(node, nodeStartLine, indentation, delta) {
|
||||
@@ -70643,7 +70712,7 @@ var ts;
|
||||
return undefined;
|
||||
}
|
||||
var declaration = declarations[0];
|
||||
var name = ts.getSynthesizedClone(declaration.name);
|
||||
var name = ts.getSynthesizedClone(ts.getNameOfDeclaration(declaration));
|
||||
var visibilityModifier = createVisibilityModifier(ts.getModifierFlags(declaration));
|
||||
var modifiers = visibilityModifier ? ts.createNodeArray([visibilityModifier]) : undefined;
|
||||
var type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration));
|
||||
@@ -71131,13 +71200,14 @@ var ts;
|
||||
return declarations;
|
||||
}
|
||||
function getDeclarationName(declaration) {
|
||||
if (declaration.name) {
|
||||
var result_7 = getTextOfIdentifierOrLiteral(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
var result_7 = getTextOfIdentifierOrLiteral(name);
|
||||
if (result_7 !== undefined) {
|
||||
return result_7;
|
||||
}
|
||||
if (declaration.name.kind === 144) {
|
||||
var expr = declaration.name.expression;
|
||||
if (name.kind === 144) {
|
||||
var expr = name.expression;
|
||||
if (expr.kind === 179) {
|
||||
return expr.name.text;
|
||||
}
|
||||
@@ -72749,6 +72819,9 @@ var ts;
|
||||
var compilerOptions = JSON.parse(compilerOptionsJson);
|
||||
var result = ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
|
||||
var resolvedFileName = result.resolvedModule ? result.resolvedModule.resolvedFileName : undefined;
|
||||
if (result.resolvedModule && result.resolvedModule.extension !== ts.Extension.Ts && result.resolvedModule.extension !== ts.Extension.Tsx && result.resolvedModule.extension !== ts.Extension.Dts) {
|
||||
resolvedFileName = undefined;
|
||||
}
|
||||
return {
|
||||
resolvedFileName: resolvedFileName,
|
||||
failedLookupLocations: result.failedLookupLocations
|
||||
|
||||
Vendored
+21
-19
@@ -482,9 +482,11 @@ declare namespace ts {
|
||||
type DeclarationName = Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | BindingPattern;
|
||||
interface Declaration extends Node {
|
||||
_declarationBrand: any;
|
||||
}
|
||||
interface NamedDeclaration extends Declaration {
|
||||
name?: DeclarationName;
|
||||
}
|
||||
interface DeclarationStatement extends Declaration, Statement {
|
||||
interface DeclarationStatement extends NamedDeclaration, Statement {
|
||||
name?: Identifier | StringLiteral | NumericLiteral;
|
||||
}
|
||||
interface ComputedPropertyName extends Node {
|
||||
@@ -495,7 +497,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.Decorator;
|
||||
expression: LeftHandSideExpression;
|
||||
}
|
||||
interface TypeParameterDeclaration extends Declaration {
|
||||
interface TypeParameterDeclaration extends NamedDeclaration {
|
||||
kind: SyntaxKind.TypeParameter;
|
||||
parent?: DeclarationWithTypeParameters;
|
||||
name: Identifier;
|
||||
@@ -503,7 +505,7 @@ declare namespace ts {
|
||||
default?: TypeNode;
|
||||
expression?: Expression;
|
||||
}
|
||||
interface SignatureDeclaration extends Declaration {
|
||||
interface SignatureDeclaration extends NamedDeclaration {
|
||||
name?: PropertyName;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
parameters: NodeArray<ParameterDeclaration>;
|
||||
@@ -516,7 +518,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.ConstructSignature;
|
||||
}
|
||||
type BindingName = Identifier | BindingPattern;
|
||||
interface VariableDeclaration extends Declaration {
|
||||
interface VariableDeclaration extends NamedDeclaration {
|
||||
kind: SyntaxKind.VariableDeclaration;
|
||||
parent?: VariableDeclarationList | CatchClause;
|
||||
name: BindingName;
|
||||
@@ -528,7 +530,7 @@ declare namespace ts {
|
||||
parent?: VariableStatement | ForStatement | ForOfStatement | ForInStatement;
|
||||
declarations: NodeArray<VariableDeclaration>;
|
||||
}
|
||||
interface ParameterDeclaration extends Declaration {
|
||||
interface ParameterDeclaration extends NamedDeclaration {
|
||||
kind: SyntaxKind.Parameter;
|
||||
parent?: SignatureDeclaration;
|
||||
dotDotDotToken?: DotDotDotToken;
|
||||
@@ -537,7 +539,7 @@ declare namespace ts {
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface BindingElement extends Declaration {
|
||||
interface BindingElement extends NamedDeclaration {
|
||||
kind: SyntaxKind.BindingElement;
|
||||
parent?: BindingPattern;
|
||||
propertyName?: PropertyName;
|
||||
@@ -559,7 +561,7 @@ declare namespace ts {
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface ObjectLiteralElement extends Declaration {
|
||||
interface ObjectLiteralElement extends NamedDeclaration {
|
||||
_objectLiteralBrandBrand: any;
|
||||
name?: PropertyName;
|
||||
}
|
||||
@@ -581,7 +583,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.SpreadAssignment;
|
||||
expression: Expression;
|
||||
}
|
||||
interface VariableLikeDeclaration extends Declaration {
|
||||
interface VariableLikeDeclaration extends NamedDeclaration {
|
||||
propertyName?: PropertyName;
|
||||
dotDotDotToken?: DotDotDotToken;
|
||||
name: DeclarationName;
|
||||
@@ -589,7 +591,7 @@ declare namespace ts {
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface PropertyLikeDeclaration extends Declaration {
|
||||
interface PropertyLikeDeclaration extends NamedDeclaration {
|
||||
name: PropertyName;
|
||||
}
|
||||
interface ObjectBindingPattern extends Node {
|
||||
@@ -926,7 +928,7 @@ declare namespace ts {
|
||||
}
|
||||
type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression | ParenthesizedExpression;
|
||||
type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;
|
||||
interface PropertyAccessExpression extends MemberExpression, Declaration {
|
||||
interface PropertyAccessExpression extends MemberExpression, NamedDeclaration {
|
||||
kind: SyntaxKind.PropertyAccessExpression;
|
||||
expression: LeftHandSideExpression;
|
||||
name: Identifier;
|
||||
@@ -1172,7 +1174,7 @@ declare namespace ts {
|
||||
block: Block;
|
||||
}
|
||||
type DeclarationWithTypeParameters = SignatureDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration;
|
||||
interface ClassLikeDeclaration extends Declaration {
|
||||
interface ClassLikeDeclaration extends NamedDeclaration {
|
||||
name?: Identifier;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
heritageClauses?: NodeArray<HeritageClause>;
|
||||
@@ -1185,11 +1187,11 @@ declare namespace ts {
|
||||
interface ClassExpression extends ClassLikeDeclaration, PrimaryExpression {
|
||||
kind: SyntaxKind.ClassExpression;
|
||||
}
|
||||
interface ClassElement extends Declaration {
|
||||
interface ClassElement extends NamedDeclaration {
|
||||
_classElementBrand: any;
|
||||
name?: PropertyName;
|
||||
}
|
||||
interface TypeElement extends Declaration {
|
||||
interface TypeElement extends NamedDeclaration {
|
||||
_typeElementBrand: any;
|
||||
name?: PropertyName;
|
||||
questionToken?: QuestionToken;
|
||||
@@ -1213,7 +1215,7 @@ declare namespace ts {
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
type: TypeNode;
|
||||
}
|
||||
interface EnumMember extends Declaration {
|
||||
interface EnumMember extends NamedDeclaration {
|
||||
kind: SyntaxKind.EnumMember;
|
||||
parent?: EnumDeclaration;
|
||||
name: PropertyName;
|
||||
@@ -1266,13 +1268,13 @@ declare namespace ts {
|
||||
moduleSpecifier: Expression;
|
||||
}
|
||||
type NamedImportBindings = NamespaceImport | NamedImports;
|
||||
interface ImportClause extends Declaration {
|
||||
interface ImportClause extends NamedDeclaration {
|
||||
kind: SyntaxKind.ImportClause;
|
||||
parent?: ImportDeclaration;
|
||||
name?: Identifier;
|
||||
namedBindings?: NamedImportBindings;
|
||||
}
|
||||
interface NamespaceImport extends Declaration {
|
||||
interface NamespaceImport extends NamedDeclaration {
|
||||
kind: SyntaxKind.NamespaceImport;
|
||||
parent?: ImportClause;
|
||||
name: Identifier;
|
||||
@@ -1298,13 +1300,13 @@ declare namespace ts {
|
||||
elements: NodeArray<ExportSpecifier>;
|
||||
}
|
||||
type NamedImportsOrExports = NamedImports | NamedExports;
|
||||
interface ImportSpecifier extends Declaration {
|
||||
interface ImportSpecifier extends NamedDeclaration {
|
||||
kind: SyntaxKind.ImportSpecifier;
|
||||
parent?: NamedImports;
|
||||
propertyName?: Identifier;
|
||||
name: Identifier;
|
||||
}
|
||||
interface ExportSpecifier extends Declaration {
|
||||
interface ExportSpecifier extends NamedDeclaration {
|
||||
kind: SyntaxKind.ExportSpecifier;
|
||||
parent?: NamedExports;
|
||||
propertyName?: Identifier;
|
||||
@@ -1435,7 +1437,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.JSDocTypeTag;
|
||||
typeExpression: JSDocTypeExpression;
|
||||
}
|
||||
interface JSDocTypedefTag extends JSDocTag, Declaration {
|
||||
interface JSDocTypedefTag extends JSDocTag, NamedDeclaration {
|
||||
kind: SyntaxKind.JSDocTypedefTag;
|
||||
fullName?: JSDocNamespaceDeclaration | Identifier;
|
||||
name?: Identifier;
|
||||
|
||||
+195
-122
@@ -9521,6 +9521,36 @@ var ts;
|
||||
return false;
|
||||
}
|
||||
ts.isDeclarationName = isDeclarationName;
|
||||
function getNameOfDeclaration(declaration) {
|
||||
if (!declaration) {
|
||||
return undefined;
|
||||
}
|
||||
if (declaration.kind === 194) {
|
||||
var kind = getSpecialPropertyAssignmentKind(declaration);
|
||||
var lhs = declaration.left;
|
||||
switch (kind) {
|
||||
case 0:
|
||||
case 2:
|
||||
return undefined;
|
||||
case 1:
|
||||
if (lhs.kind === 71) {
|
||||
return lhs.name;
|
||||
}
|
||||
else {
|
||||
return lhs.expression.name;
|
||||
}
|
||||
case 4:
|
||||
case 5:
|
||||
return lhs.name;
|
||||
case 3:
|
||||
return lhs.expression.name;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return declaration.name;
|
||||
}
|
||||
}
|
||||
ts.getNameOfDeclaration = getNameOfDeclaration;
|
||||
function isLiteralComputedPropertyDeclarationName(node) {
|
||||
return (node.kind === 9 || node.kind === 8) &&
|
||||
node.parent.kind === 144 &&
|
||||
@@ -9713,7 +9743,8 @@ var ts;
|
||||
}
|
||||
ts.isStringOrNumericLiteral = isStringOrNumericLiteral;
|
||||
function hasDynamicName(declaration) {
|
||||
return declaration.name && isDynamicName(declaration.name);
|
||||
var name = getNameOfDeclaration(declaration);
|
||||
return name && isDynamicName(name);
|
||||
}
|
||||
ts.hasDynamicName = hasDynamicName;
|
||||
function isDynamicName(name) {
|
||||
@@ -14367,9 +14398,10 @@ var ts;
|
||||
}
|
||||
ts.getDeclarationName = getDeclarationName;
|
||||
function getName(node, allowComments, allowSourceMaps, emitFlags) {
|
||||
if (node.name && ts.isIdentifier(node.name) && !ts.isGeneratedIdentifier(node.name)) {
|
||||
var name = ts.getMutableClone(node.name);
|
||||
emitFlags |= ts.getEmitFlags(node.name);
|
||||
var nodeName = ts.getNameOfDeclaration(node);
|
||||
if (nodeName && ts.isIdentifier(nodeName) && !ts.isGeneratedIdentifier(nodeName)) {
|
||||
var name = ts.getMutableClone(nodeName);
|
||||
emitFlags |= ts.getEmitFlags(nodeName);
|
||||
if (!allowSourceMaps)
|
||||
emitFlags |= 48;
|
||||
if (!allowComments)
|
||||
@@ -20630,19 +20662,20 @@ var ts;
|
||||
}
|
||||
}
|
||||
function getDeclarationName(node) {
|
||||
if (node.name) {
|
||||
var name = ts.getNameOfDeclaration(node);
|
||||
if (name) {
|
||||
if (ts.isAmbientModule(node)) {
|
||||
return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + node.name.text + "\"";
|
||||
return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + name.text + "\"";
|
||||
}
|
||||
if (node.name.kind === 144) {
|
||||
var nameExpression = node.name.expression;
|
||||
if (name.kind === 144) {
|
||||
var nameExpression = name.expression;
|
||||
if (ts.isStringOrNumericLiteral(nameExpression)) {
|
||||
return nameExpression.text;
|
||||
}
|
||||
ts.Debug.assert(ts.isWellKnownSymbolSyntactically(nameExpression));
|
||||
return ts.getPropertyNameForKnownSymbolName(nameExpression.name.text);
|
||||
}
|
||||
return node.name.text;
|
||||
return name.text;
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 152:
|
||||
@@ -20738,9 +20771,9 @@ var ts;
|
||||
}
|
||||
}
|
||||
ts.forEach(symbol.declarations, function (declaration) {
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message_1, getDisplayName(declaration)));
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(ts.getNameOfDeclaration(declaration) || declaration, message_1, getDisplayName(declaration)));
|
||||
});
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message_1, getDisplayName(node)));
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(ts.getNameOfDeclaration(node) || node, message_1, getDisplayName(node)));
|
||||
symbol = createSymbol(0, name);
|
||||
}
|
||||
}
|
||||
@@ -23652,16 +23685,16 @@ var ts;
|
||||
recordMergedSymbol(target, source);
|
||||
}
|
||||
else if (target.flags & 1024) {
|
||||
error(source.declarations[0].name, ts.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, symbolToString(target));
|
||||
error(ts.getNameOfDeclaration(source.declarations[0]), ts.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, symbolToString(target));
|
||||
}
|
||||
else {
|
||||
var message_2 = target.flags & 2 || source.flags & 2
|
||||
? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0;
|
||||
ts.forEach(source.declarations, function (node) {
|
||||
error(node.name ? node.name : node, message_2, symbolToString(source));
|
||||
error(ts.getNameOfDeclaration(node) || node, message_2, symbolToString(source));
|
||||
});
|
||||
ts.forEach(target.declarations, function (node) {
|
||||
error(node.name ? node.name : node, message_2, symbolToString(source));
|
||||
error(ts.getNameOfDeclaration(node) || node, message_2, symbolToString(source));
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -23772,7 +23805,8 @@ var ts;
|
||||
var useFile = ts.getSourceFileOfNode(usage);
|
||||
if (declarationFile !== useFile) {
|
||||
if ((modulekind && (declarationFile.externalModuleIndicator || useFile.externalModuleIndicator)) ||
|
||||
(!compilerOptions.outFile && !compilerOptions.out)) {
|
||||
(!compilerOptions.outFile && !compilerOptions.out) ||
|
||||
ts.isInAmbientContext(declaration)) {
|
||||
return true;
|
||||
}
|
||||
if (isUsedInFunctionOrInstanceProperty(usage, declaration)) {
|
||||
@@ -24133,13 +24167,13 @@ var ts;
|
||||
ts.Debug.assert(declaration !== undefined, "Declaration to checkResolvedBlockScopedVariable is undefined");
|
||||
if (!ts.isInAmbientContext(declaration) && !isBlockScopedNameDeclaredBeforeUse(declaration, errorLocation)) {
|
||||
if (result.flags & 2) {
|
||||
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
else if (result.flags & 32) {
|
||||
error(errorLocation, ts.Diagnostics.Class_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Class_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
else if (result.flags & 384) {
|
||||
error(errorLocation, ts.Diagnostics.Enum_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Enum_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -25349,8 +25383,9 @@ var ts;
|
||||
function getNameOfSymbol(symbol) {
|
||||
var declaration = ts.firstOrUndefined(symbol.declarations);
|
||||
if (declaration) {
|
||||
if (declaration.name) {
|
||||
return ts.declarationNameToString(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
return ts.declarationNameToString(name);
|
||||
}
|
||||
if (declaration.parent && declaration.parent.kind === 226) {
|
||||
return ts.declarationNameToString(declaration.parent.name);
|
||||
@@ -25431,8 +25466,9 @@ var ts;
|
||||
function getNameOfSymbol(symbol) {
|
||||
if (symbol.declarations && symbol.declarations.length) {
|
||||
var declaration = symbol.declarations[0];
|
||||
if (declaration.name) {
|
||||
return ts.declarationNameToString(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
return ts.declarationNameToString(name);
|
||||
}
|
||||
if (declaration.parent && declaration.parent.kind === 226) {
|
||||
return ts.declarationNameToString(declaration.parent.name);
|
||||
@@ -28261,8 +28297,9 @@ var ts;
|
||||
type = anyType;
|
||||
if (noImplicitAny) {
|
||||
var declaration = signature.declaration;
|
||||
if (declaration.name) {
|
||||
error(declaration.name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(declaration.name));
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
error(name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(name));
|
||||
}
|
||||
else {
|
||||
error(declaration, ts.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions);
|
||||
@@ -30182,24 +30219,6 @@ var ts;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
function isKnownProperty(type, name, isComparingJsxAttributes) {
|
||||
if (type.flags & 32768) {
|
||||
var resolved = resolveStructuredTypeMembers(type);
|
||||
if (resolved.stringIndexInfo || resolved.numberIndexInfo && isNumericLiteralName(name) ||
|
||||
getPropertyOfType(type, name) || isComparingJsxAttributes && !isUnhyphenatedJsxName(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (type.flags & 196608) {
|
||||
for (var _i = 0, _a = type.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
if (isKnownProperty(t, name, isComparingJsxAttributes)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function hasExcessProperties(source, target, reportErrors) {
|
||||
if (maybeTypeOfKind(target, 32768) && !(getObjectFlags(target) & 512)) {
|
||||
var isComparingJsxAttributes = !!(source.flags & 33554432);
|
||||
@@ -31213,7 +31232,7 @@ var ts;
|
||||
default:
|
||||
diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type;
|
||||
}
|
||||
error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString);
|
||||
error(declaration, diagnostic, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)), typeAsString);
|
||||
}
|
||||
function reportErrorsFromWidening(declaration, type) {
|
||||
if (produceDiagnostics && noImplicitAny && type.flags & 2097152) {
|
||||
@@ -32765,7 +32784,7 @@ var ts;
|
||||
if (type === autoType || type === autoArrayType) {
|
||||
if (flowType === autoType || flowType === autoArrayType) {
|
||||
if (noImplicitAny) {
|
||||
error(declaration.name, ts.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));
|
||||
error(ts.getNameOfDeclaration(declaration), ts.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));
|
||||
error(node, ts.Diagnostics.Variable_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType));
|
||||
}
|
||||
return convertAutoToAny(flowType);
|
||||
@@ -33763,6 +33782,8 @@ var ts;
|
||||
var spread = emptyObjectType;
|
||||
var attributesArray = [];
|
||||
var hasSpreadAnyType = false;
|
||||
var explicitlySpecifyChildrenAttribute = false;
|
||||
var jsxChildrenPropertyName = getJsxElementChildrenPropertyname();
|
||||
for (var _i = 0, _a = attributes.properties; _i < _a.length; _i++) {
|
||||
var attributeDecl = _a[_i];
|
||||
var member = attributeDecl.symbol;
|
||||
@@ -33780,6 +33801,9 @@ var ts;
|
||||
attributeSymbol.target = member;
|
||||
attributesTable.set(attributeSymbol.name, attributeSymbol);
|
||||
attributesArray.push(attributeSymbol);
|
||||
if (attributeDecl.name.text === jsxChildrenPropertyName) {
|
||||
explicitlySpecifyChildrenAttribute = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
ts.Debug.assert(attributeDecl.kind === 255);
|
||||
@@ -33788,11 +33812,7 @@ var ts;
|
||||
attributesArray = [];
|
||||
attributesTable = ts.createMap();
|
||||
}
|
||||
var exprType = checkExpression(attributeDecl.expression);
|
||||
if (!isValidSpreadType(exprType)) {
|
||||
error(attributeDecl, ts.Diagnostics.Spread_types_may_only_be_created_from_object_types);
|
||||
hasSpreadAnyType = true;
|
||||
}
|
||||
var exprType = getApparentType(checkExpression(attributeDecl.expression));
|
||||
if (isTypeAny(exprType)) {
|
||||
hasSpreadAnyType = true;
|
||||
}
|
||||
@@ -33831,9 +33851,8 @@ var ts;
|
||||
childrenTypes.push(checkExpression(child, checkMode));
|
||||
}
|
||||
}
|
||||
var jsxChildrenPropertyName = getJsxElementChildrenPropertyname();
|
||||
if (!hasSpreadAnyType && jsxChildrenPropertyName && jsxChildrenPropertyName !== "") {
|
||||
if (attributesTable.has(jsxChildrenPropertyName)) {
|
||||
if (explicitlySpecifyChildrenAttribute) {
|
||||
error(attributes, ts.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten, jsxChildrenPropertyName);
|
||||
}
|
||||
var childrenPropSymbol = createSymbol(4 | 134217728, jsxChildrenPropertyName);
|
||||
@@ -33846,8 +33865,7 @@ var ts;
|
||||
return hasSpreadAnyType ? anyType : createJsxAttributesType(attributes.symbol, attributesTable);
|
||||
function createJsxAttributesType(symbol, attributesTable) {
|
||||
var result = createAnonymousType(symbol, attributesTable, emptyArray, emptyArray, undefined, undefined);
|
||||
var freshObjectLiteralFlag = compilerOptions.suppressExcessPropertyErrors ? 0 : 1048576;
|
||||
result.flags |= 33554432 | 4194304 | freshObjectLiteralFlag;
|
||||
result.flags |= 33554432 | 4194304;
|
||||
result.objectFlags |= 128;
|
||||
return result;
|
||||
}
|
||||
@@ -33947,6 +33965,20 @@ var ts;
|
||||
}
|
||||
return _jsxElementChildrenPropertyName;
|
||||
}
|
||||
function getApparentTypeOfJsxPropsType(propsType) {
|
||||
if (!propsType) {
|
||||
return undefined;
|
||||
}
|
||||
if (propsType.flags & 131072) {
|
||||
var propsApparentType = [];
|
||||
for (var _i = 0, _a = propsType.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
propsApparentType.push(getApparentType(t));
|
||||
}
|
||||
return getIntersectionType(propsApparentType);
|
||||
}
|
||||
return getApparentType(propsType);
|
||||
}
|
||||
function defaultTryGetJsxStatelessFunctionAttributesType(openingLikeElement, elementType, elemInstanceType, elementClassType) {
|
||||
ts.Debug.assert(!(elementType.flags & 65536));
|
||||
if (!elementClassType || !isTypeAssignableTo(elemInstanceType, elementClassType)) {
|
||||
@@ -33956,6 +33988,7 @@ var ts;
|
||||
if (callSignature !== unknownSignature) {
|
||||
var callReturnType = callSignature && getReturnTypeOfSignature(callSignature);
|
||||
var paramType = callReturnType && (callSignature.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(callSignature.parameters[0]));
|
||||
paramType = getApparentTypeOfJsxPropsType(paramType);
|
||||
if (callReturnType && isTypeAssignableTo(callReturnType, jsxStatelessElementType)) {
|
||||
var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes);
|
||||
if (intrinsicAttributes !== unknownType) {
|
||||
@@ -33981,6 +34014,7 @@ var ts;
|
||||
var candidate = candidatesOutArray_1[_i];
|
||||
var callReturnType = getReturnTypeOfSignature(candidate);
|
||||
var paramType = callReturnType && (candidate.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(candidate.parameters[0]));
|
||||
paramType = getApparentTypeOfJsxPropsType(paramType);
|
||||
if (callReturnType && isTypeAssignableTo(callReturnType, jsxStatelessElementType)) {
|
||||
var shouldBeCandidate = true;
|
||||
for (var _a = 0, _b = openingLikeElement.attributes.properties; _a < _b.length; _a++) {
|
||||
@@ -34184,6 +34218,24 @@ var ts;
|
||||
}
|
||||
checkJsxAttributesAssignableToTagNameAttributes(node);
|
||||
}
|
||||
function isKnownProperty(targetType, name, isComparingJsxAttributes) {
|
||||
if (targetType.flags & 32768) {
|
||||
var resolved = resolveStructuredTypeMembers(targetType);
|
||||
if (resolved.stringIndexInfo || resolved.numberIndexInfo && isNumericLiteralName(name) ||
|
||||
getPropertyOfType(targetType, name) || isComparingJsxAttributes && !isUnhyphenatedJsxName(name)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (targetType.flags & 196608) {
|
||||
for (var _i = 0, _a = targetType.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
if (isKnownProperty(t, name, isComparingJsxAttributes)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function checkJsxAttributesAssignableToTagNameAttributes(openingLikeElement) {
|
||||
var targetAttributesType = isJsxIntrinsicIdentifier(openingLikeElement.tagName) ?
|
||||
getIntrinsicAttributesTypeFromJsxOpeningLikeElement(openingLikeElement) :
|
||||
@@ -34195,7 +34247,16 @@ var ts;
|
||||
error(openingLikeElement, ts.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property, getJsxElementPropertiesName());
|
||||
}
|
||||
else {
|
||||
checkTypeAssignableTo(sourceAttributesType, targetAttributesType, openingLikeElement.attributes.properties.length > 0 ? openingLikeElement.attributes : openingLikeElement);
|
||||
var isSourceAttributeTypeAssignableToTarget = checkTypeAssignableTo(sourceAttributesType, targetAttributesType, openingLikeElement.attributes.properties.length > 0 ? openingLikeElement.attributes : openingLikeElement);
|
||||
if (isSourceAttributeTypeAssignableToTarget && !isTypeAny(sourceAttributesType) && !isTypeAny(targetAttributesType)) {
|
||||
for (var _i = 0, _a = openingLikeElement.attributes.properties; _i < _a.length; _i++) {
|
||||
var attribute = _a[_i];
|
||||
if (ts.isJsxAttribute(attribute) && !isKnownProperty(targetAttributesType, attribute.name.text, true)) {
|
||||
error(attribute, ts.Diagnostics.Property_0_does_not_exist_on_type_1, attribute.name.text, typeToString(targetAttributesType));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function checkJsxExpression(node, checkMode) {
|
||||
@@ -35171,7 +35232,7 @@ var ts;
|
||||
}
|
||||
var valueDecl = expressionType.symbol && getClassLikeDeclarationOfSymbol(expressionType.symbol);
|
||||
if (valueDecl && ts.getModifierFlags(valueDecl) & 128) {
|
||||
error(node, ts.Diagnostics.Cannot_create_an_instance_of_the_abstract_class_0, ts.declarationNameToString(valueDecl.name));
|
||||
error(node, ts.Diagnostics.Cannot_create_an_instance_of_the_abstract_class_0, ts.declarationNameToString(ts.getNameOfDeclaration(valueDecl)));
|
||||
return resolveErrorCall(node);
|
||||
}
|
||||
if (isTypeAny(expressionType)) {
|
||||
@@ -35507,10 +35568,10 @@ var ts;
|
||||
var links = getSymbolLinks(parameter);
|
||||
if (!links.type) {
|
||||
links.type = instantiateType(contextualType, mapper);
|
||||
var name = ts.getNameOfDeclaration(parameter.valueDeclaration);
|
||||
if (links.type === emptyObjectType &&
|
||||
(parameter.valueDeclaration.name.kind === 174 ||
|
||||
parameter.valueDeclaration.name.kind === 175)) {
|
||||
links.type = getTypeFromBindingPattern(parameter.valueDeclaration.name);
|
||||
(name.kind === 174 || name.kind === 175)) {
|
||||
links.type = getTypeFromBindingPattern(name);
|
||||
}
|
||||
assignBindingElementTypes(parameter.valueDeclaration);
|
||||
}
|
||||
@@ -36943,7 +37004,7 @@ var ts;
|
||||
continue;
|
||||
}
|
||||
if (names.get(memberName)) {
|
||||
error(member.symbol.valueDeclaration.name, ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
error(ts.getNameOfDeclaration(member.symbol.valueDeclaration), ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
error(member.name, ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
}
|
||||
else {
|
||||
@@ -37017,7 +37078,8 @@ var ts;
|
||||
return;
|
||||
}
|
||||
function containsSuperCallAsComputedPropertyName(n) {
|
||||
return n.name && containsSuperCall(n.name);
|
||||
var name = ts.getNameOfDeclaration(n);
|
||||
return name && containsSuperCall(name);
|
||||
}
|
||||
function containsSuperCall(n) {
|
||||
if (ts.isSuperCall(n)) {
|
||||
@@ -37244,16 +37306,16 @@ var ts;
|
||||
ts.forEach(overloads, function (o) {
|
||||
var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags_1;
|
||||
if (deviation & 1) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);
|
||||
}
|
||||
else if (deviation & 2) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);
|
||||
}
|
||||
else if (deviation & (8 | 16)) {
|
||||
error(o.name || o, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);
|
||||
error(ts.getNameOfDeclaration(o) || o, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);
|
||||
}
|
||||
else if (deviation & 128) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -37264,7 +37326,7 @@ var ts;
|
||||
ts.forEach(overloads, function (o) {
|
||||
var deviation = ts.hasQuestionToken(o) !== canonicalHasQuestionToken_1;
|
||||
if (deviation) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -37372,7 +37434,7 @@ var ts;
|
||||
}
|
||||
if (duplicateFunctionDeclaration) {
|
||||
ts.forEach(declarations, function (declaration) {
|
||||
error(declaration.name, ts.Diagnostics.Duplicate_function_implementation);
|
||||
error(ts.getNameOfDeclaration(declaration), ts.Diagnostics.Duplicate_function_implementation);
|
||||
});
|
||||
}
|
||||
if (lastSeenNonAmbientDeclaration && !lastSeenNonAmbientDeclaration.body &&
|
||||
@@ -37435,11 +37497,12 @@ var ts;
|
||||
for (var _b = 0, _c = symbol.declarations; _b < _c.length; _b++) {
|
||||
var d = _c[_b];
|
||||
var declarationSpaces = getDeclarationSpaces(d);
|
||||
var name = ts.getNameOfDeclaration(d);
|
||||
if (declarationSpaces & commonDeclarationSpacesForDefaultAndNonDefault) {
|
||||
error(d.name, ts.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, ts.declarationNameToString(d.name));
|
||||
error(name, ts.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, ts.declarationNameToString(name));
|
||||
}
|
||||
else if (declarationSpaces & commonDeclarationSpacesForExportsAndLocals) {
|
||||
error(d.name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(d.name));
|
||||
error(name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(name));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -37801,15 +37864,16 @@ var ts;
|
||||
if (!local.isReferenced) {
|
||||
if (local.valueDeclaration && ts.getRootDeclaration(local.valueDeclaration).kind === 146) {
|
||||
var parameter = ts.getRootDeclaration(local.valueDeclaration);
|
||||
var name = ts.getNameOfDeclaration(local.valueDeclaration);
|
||||
if (compilerOptions.noUnusedParameters &&
|
||||
!ts.isParameterPropertyDeclaration(parameter) &&
|
||||
!ts.parameterIsThisKeyword(parameter) &&
|
||||
!parameterNameStartsWithUnderscore(local.valueDeclaration.name)) {
|
||||
error(local.valueDeclaration.name, ts.Diagnostics._0_is_declared_but_never_used, local.name);
|
||||
!parameterNameStartsWithUnderscore(name)) {
|
||||
error(name, ts.Diagnostics._0_is_declared_but_never_used, local.name);
|
||||
}
|
||||
}
|
||||
else if (compilerOptions.noUnusedLocals) {
|
||||
ts.forEach(local.declarations, function (d) { return errorUnusedLocal(d.name || d, local.name); });
|
||||
ts.forEach(local.declarations, function (d) { return errorUnusedLocal(ts.getNameOfDeclaration(d) || d, local.name); });
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -37887,7 +37951,7 @@ var ts;
|
||||
for (var _i = 0, _a = local.declarations; _i < _a.length; _i++) {
|
||||
var declaration = _a[_i];
|
||||
if (!ts.isAmbientModule(declaration)) {
|
||||
errorUnusedLocal(declaration.name, local.name);
|
||||
errorUnusedLocal(ts.getNameOfDeclaration(declaration), local.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -37949,7 +38013,7 @@ var ts;
|
||||
if (getNodeCheckFlags(current) & 4) {
|
||||
var isDeclaration_1 = node.kind !== 71;
|
||||
if (isDeclaration_1) {
|
||||
error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);
|
||||
error(ts.getNameOfDeclaration(node), ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);
|
||||
}
|
||||
else {
|
||||
error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference);
|
||||
@@ -37963,7 +38027,7 @@ var ts;
|
||||
if (getNodeCheckFlags(current) & 8) {
|
||||
var isDeclaration_2 = node.kind !== 71;
|
||||
if (isDeclaration_2) {
|
||||
error(node.name, ts.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);
|
||||
error(ts.getNameOfDeclaration(node), ts.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);
|
||||
}
|
||||
else {
|
||||
error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference);
|
||||
@@ -38159,7 +38223,7 @@ var ts;
|
||||
checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, undefined);
|
||||
}
|
||||
if (!areDeclarationFlagsIdentical(node, symbol.valueDeclaration)) {
|
||||
error(symbol.valueDeclaration.name, ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
error(ts.getNameOfDeclaration(symbol.valueDeclaration), ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
error(node.name, ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
}
|
||||
}
|
||||
@@ -38720,13 +38784,13 @@ var ts;
|
||||
return;
|
||||
}
|
||||
var propDeclaration = prop.valueDeclaration;
|
||||
if (indexKind === 1 && !(propDeclaration ? isNumericName(propDeclaration.name) : isNumericLiteralName(prop.name))) {
|
||||
if (indexKind === 1 && !(propDeclaration ? isNumericName(ts.getNameOfDeclaration(propDeclaration)) : isNumericLiteralName(prop.name))) {
|
||||
return;
|
||||
}
|
||||
var errorNode;
|
||||
if (propDeclaration &&
|
||||
(ts.getSpecialPropertyAssignmentKind(propDeclaration) === 4 ||
|
||||
propDeclaration.name.kind === 144 ||
|
||||
(propDeclaration.kind === 194 ||
|
||||
ts.getNameOfDeclaration(propDeclaration).kind === 144 ||
|
||||
prop.parent === containingType.symbol)) {
|
||||
errorNode = propDeclaration;
|
||||
}
|
||||
@@ -39001,7 +39065,7 @@ var ts;
|
||||
else {
|
||||
errorMessage = ts.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function;
|
||||
}
|
||||
error(derived.valueDeclaration.name || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
||||
error(ts.getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -39269,7 +39333,7 @@ var ts;
|
||||
if (enumSymbol.declarations.length > 1) {
|
||||
ts.forEach(enumSymbol.declarations, function (decl) {
|
||||
if (ts.isConstEnumDeclaration(decl) !== enumIsConst) {
|
||||
error(decl.name, ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const);
|
||||
error(ts.getNameOfDeclaration(decl), ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -47766,7 +47830,7 @@ var ts;
|
||||
if (enabledSubstitutions & 2 && !ts.isInternalName(node)) {
|
||||
var declaration = resolver.getReferencedDeclarationWithCollidingName(node);
|
||||
if (declaration && !(ts.isClassLike(declaration) && isPartOfClassBody(declaration, node))) {
|
||||
return ts.setTextRange(ts.getGeneratedNameForNode(declaration.name), node);
|
||||
return ts.setTextRange(ts.getGeneratedNameForNode(ts.getNameOfDeclaration(declaration)), node);
|
||||
}
|
||||
}
|
||||
return node;
|
||||
@@ -51441,7 +51505,7 @@ var ts;
|
||||
var errorNameNode;
|
||||
var emitJsDocComments = compilerOptions.removeComments ? ts.noop : writeJsDocComments;
|
||||
var emit = compilerOptions.stripInternal ? stripInternal : emitNode;
|
||||
var noDeclare;
|
||||
var needsDeclare = true;
|
||||
var moduleElementDeclarationEmitInfo = [];
|
||||
var asynchronousSubModuleDeclarationEmitInfo;
|
||||
var referencesOutput = "";
|
||||
@@ -51466,11 +51530,11 @@ var ts;
|
||||
}
|
||||
resultHasExternalModuleIndicator = false;
|
||||
if (!isBundledEmit || !ts.isExternalModule(sourceFile)) {
|
||||
noDeclare = false;
|
||||
needsDeclare = true;
|
||||
emitSourceFile(sourceFile);
|
||||
}
|
||||
else if (ts.isExternalModule(sourceFile)) {
|
||||
noDeclare = true;
|
||||
needsDeclare = false;
|
||||
write("declare module \"" + ts.getResolvedExternalModuleName(host, sourceFile) + "\" {");
|
||||
writeLine();
|
||||
increaseIndent();
|
||||
@@ -51887,9 +51951,9 @@ var ts;
|
||||
}
|
||||
}
|
||||
}
|
||||
function emitTempVariableDeclaration(expr, baseName, diagnostic) {
|
||||
function emitTempVariableDeclaration(expr, baseName, diagnostic, needsDeclare) {
|
||||
var tempVarName = getExportTempVariableName(baseName);
|
||||
if (!noDeclare) {
|
||||
if (needsDeclare) {
|
||||
write("declare ");
|
||||
}
|
||||
write("const ");
|
||||
@@ -51910,7 +51974,7 @@ var ts;
|
||||
var tempVarName = emitTempVariableDeclaration(node.expression, "_default", {
|
||||
diagnosticMessage: ts.Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0,
|
||||
errorNode: node
|
||||
});
|
||||
}, needsDeclare);
|
||||
write(node.isExportEquals ? "export = " : "export default ");
|
||||
write(tempVarName);
|
||||
}
|
||||
@@ -51989,7 +52053,7 @@ var ts;
|
||||
if (modifiers & 512) {
|
||||
write("default ");
|
||||
}
|
||||
else if (node.kind !== 230 && !noDeclare) {
|
||||
else if (node.kind !== 230 && needsDeclare) {
|
||||
write("declare ");
|
||||
}
|
||||
}
|
||||
@@ -52339,7 +52403,7 @@ var ts;
|
||||
return {
|
||||
diagnosticMessage: diagnosticMessage,
|
||||
errorNode: node,
|
||||
typeName: node.parent.parent.name
|
||||
typeName: ts.getNameOfDeclaration(node.parent.parent)
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -52365,7 +52429,7 @@ var ts;
|
||||
diagnosticMessage: ts.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,
|
||||
errorNode: baseTypeNode,
|
||||
typeName: node.name
|
||||
});
|
||||
}, !ts.findAncestor(node, function (n) { return n.kind === 233; }));
|
||||
}
|
||||
emitJsDocComments(node);
|
||||
emitModuleElementDeclarationFlags(node);
|
||||
@@ -57712,7 +57776,7 @@ var ts;
|
||||
case 153:
|
||||
case 154:
|
||||
case 233:
|
||||
return node.parent.name === node;
|
||||
return ts.getNameOfDeclaration(node.parent) === node;
|
||||
case 180:
|
||||
return node.parent.argumentExpression === node;
|
||||
case 144:
|
||||
@@ -61156,7 +61220,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
else {
|
||||
existingName = m.name.text;
|
||||
existingName = ts.getNameOfDeclaration(m).text;
|
||||
}
|
||||
existingMemberNames.set(existingName, true);
|
||||
}
|
||||
@@ -62224,8 +62288,8 @@ var ts;
|
||||
if (symbol.name !== "default") {
|
||||
return symbol.name;
|
||||
}
|
||||
var name = ts.forEach(symbol.declarations, function (_a) {
|
||||
var name = _a.name;
|
||||
var name = ts.forEach(symbol.declarations, function (decl) {
|
||||
var name = ts.getNameOfDeclaration(decl);
|
||||
return name && name.kind === 71 && name.text;
|
||||
});
|
||||
ts.Debug.assert(!!name);
|
||||
@@ -62877,7 +62941,7 @@ var ts;
|
||||
var flags = _a.flags, valueDeclaration = _a.valueDeclaration;
|
||||
var shorthandValueSymbol = state.checker.getShorthandAssignmentValueSymbol(valueDeclaration);
|
||||
if (!(flags & 134217728) && search.includes(shorthandValueSymbol)) {
|
||||
addReference(valueDeclaration.name, shorthandValueSymbol, search.location, state);
|
||||
addReference(ts.getNameOfDeclaration(valueDeclaration), shorthandValueSymbol, search.location, state);
|
||||
}
|
||||
}
|
||||
function addReference(referenceLocation, relatedSymbol, searchLocation, state) {
|
||||
@@ -63626,7 +63690,7 @@ var ts;
|
||||
}
|
||||
}
|
||||
function createDefinitionInfo(node, symbolKind, symbolName, containerName) {
|
||||
return createDefinitionInfoFromName(node.name || node, symbolKind, symbolName, containerName);
|
||||
return createDefinitionInfoFromName(ts.getNameOfDeclaration(node) || node, symbolKind, symbolName, containerName);
|
||||
}
|
||||
function createDefinitionInfoFromName(name, symbolKind, symbolName, containerName) {
|
||||
var sourceFile = name.getSourceFile();
|
||||
@@ -64149,16 +64213,19 @@ var ts;
|
||||
return undefined;
|
||||
}
|
||||
function tryAddSingleDeclarationName(declaration, containers) {
|
||||
if (declaration && declaration.name) {
|
||||
var text = getTextOfIdentifierOrLiteral(declaration.name);
|
||||
if (text !== undefined) {
|
||||
containers.unshift(text);
|
||||
}
|
||||
else if (declaration.name.kind === 144) {
|
||||
return tryAddComputedPropertyName(declaration.name.expression, containers, true);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
if (declaration) {
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
var text = getTextOfIdentifierOrLiteral(name);
|
||||
if (text !== undefined) {
|
||||
containers.unshift(text);
|
||||
}
|
||||
else if (name.kind === 144) {
|
||||
return tryAddComputedPropertyName(name.expression, containers, true);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -64182,8 +64249,9 @@ var ts;
|
||||
}
|
||||
function getContainers(declaration) {
|
||||
var containers = [];
|
||||
if (declaration.name.kind === 144) {
|
||||
if (!tryAddComputedPropertyName(declaration.name.expression, containers, false)) {
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name.kind === 144) {
|
||||
if (!tryAddComputedPropertyName(name.expression, containers, false)) {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
@@ -64216,6 +64284,7 @@ var ts;
|
||||
function createNavigateToItem(rawItem) {
|
||||
var declaration = rawItem.declaration;
|
||||
var container = ts.getContainerNode(declaration);
|
||||
var containerName = container && ts.getNameOfDeclaration(container);
|
||||
return {
|
||||
name: rawItem.name,
|
||||
kind: ts.getNodeKind(declaration),
|
||||
@@ -64224,8 +64293,8 @@ var ts;
|
||||
isCaseSensitive: rawItem.isCaseSensitive,
|
||||
fileName: rawItem.fileName,
|
||||
textSpan: ts.createTextSpanFromNode(declaration),
|
||||
containerName: container && container.name ? container.name.text : "",
|
||||
containerKind: container && container.name ? ts.getNodeKind(container) : ""
|
||||
containerName: containerName ? containerName.text : "",
|
||||
containerKind: containerName ? ts.getNodeKind(container) : ""
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -64439,8 +64508,8 @@ var ts;
|
||||
function mergeChildren(children) {
|
||||
var nameToItems = ts.createMap();
|
||||
ts.filterMutate(children, function (child) {
|
||||
var decl = child.node;
|
||||
var name = decl.name && nodeText(decl.name);
|
||||
var declName = ts.getNameOfDeclaration(child.node);
|
||||
var name = declName && nodeText(declName);
|
||||
if (!name) {
|
||||
return true;
|
||||
}
|
||||
@@ -64518,9 +64587,9 @@ var ts;
|
||||
if (node.kind === 233) {
|
||||
return getModuleName(node);
|
||||
}
|
||||
var decl = node;
|
||||
if (decl.name) {
|
||||
return ts.getPropertyNameForPropertyNameNode(decl.name);
|
||||
var declName = ts.getNameOfDeclaration(node);
|
||||
if (declName) {
|
||||
return ts.getPropertyNameForPropertyNameNode(declName);
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 186:
|
||||
@@ -64537,7 +64606,7 @@ var ts;
|
||||
if (node.kind === 233) {
|
||||
return getModuleName(node);
|
||||
}
|
||||
var name = node.name;
|
||||
var name = ts.getNameOfDeclaration(node);
|
||||
if (name) {
|
||||
var text = nodeText(name);
|
||||
if (text.length > 0) {
|
||||
@@ -68165,7 +68234,7 @@ var ts;
|
||||
}
|
||||
case 149:
|
||||
case 146:
|
||||
return node.name.kind;
|
||||
return ts.getNameOfDeclaration(node).kind;
|
||||
}
|
||||
}
|
||||
function getDynamicIndentation(node, nodeStartLine, indentation, delta) {
|
||||
@@ -70643,7 +70712,7 @@ var ts;
|
||||
return undefined;
|
||||
}
|
||||
var declaration = declarations[0];
|
||||
var name = ts.getSynthesizedClone(declaration.name);
|
||||
var name = ts.getSynthesizedClone(ts.getNameOfDeclaration(declaration));
|
||||
var visibilityModifier = createVisibilityModifier(ts.getModifierFlags(declaration));
|
||||
var modifiers = visibilityModifier ? ts.createNodeArray([visibilityModifier]) : undefined;
|
||||
var type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration));
|
||||
@@ -71131,13 +71200,14 @@ var ts;
|
||||
return declarations;
|
||||
}
|
||||
function getDeclarationName(declaration) {
|
||||
if (declaration.name) {
|
||||
var result_7 = getTextOfIdentifierOrLiteral(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
var result_7 = getTextOfIdentifierOrLiteral(name);
|
||||
if (result_7 !== undefined) {
|
||||
return result_7;
|
||||
}
|
||||
if (declaration.name.kind === 144) {
|
||||
var expr = declaration.name.expression;
|
||||
if (name.kind === 144) {
|
||||
var expr = name.expression;
|
||||
if (expr.kind === 179) {
|
||||
return expr.name.text;
|
||||
}
|
||||
@@ -78462,6 +78532,9 @@ var ts;
|
||||
var compilerOptions = JSON.parse(compilerOptionsJson);
|
||||
var result = ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
|
||||
var resolvedFileName = result.resolvedModule ? result.resolvedModule.resolvedFileName : undefined;
|
||||
if (result.resolvedModule && result.resolvedModule.extension !== ts.Extension.Ts && result.resolvedModule.extension !== ts.Extension.Tsx && result.resolvedModule.extension !== ts.Extension.Dts) {
|
||||
resolvedFileName = undefined;
|
||||
}
|
||||
return {
|
||||
resolvedFileName: resolvedFileName,
|
||||
failedLookupLocations: result.failedLookupLocations
|
||||
|
||||
Vendored
+21
-19
@@ -491,9 +491,11 @@ declare namespace ts {
|
||||
type DeclarationName = Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | BindingPattern;
|
||||
interface Declaration extends Node {
|
||||
_declarationBrand: any;
|
||||
}
|
||||
interface NamedDeclaration extends Declaration {
|
||||
name?: DeclarationName;
|
||||
}
|
||||
interface DeclarationStatement extends Declaration, Statement {
|
||||
interface DeclarationStatement extends NamedDeclaration, Statement {
|
||||
name?: Identifier | StringLiteral | NumericLiteral;
|
||||
}
|
||||
interface ComputedPropertyName extends Node {
|
||||
@@ -504,7 +506,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.Decorator;
|
||||
expression: LeftHandSideExpression;
|
||||
}
|
||||
interface TypeParameterDeclaration extends Declaration {
|
||||
interface TypeParameterDeclaration extends NamedDeclaration {
|
||||
kind: SyntaxKind.TypeParameter;
|
||||
parent?: DeclarationWithTypeParameters;
|
||||
name: Identifier;
|
||||
@@ -512,7 +514,7 @@ declare namespace ts {
|
||||
default?: TypeNode;
|
||||
expression?: Expression;
|
||||
}
|
||||
interface SignatureDeclaration extends Declaration {
|
||||
interface SignatureDeclaration extends NamedDeclaration {
|
||||
name?: PropertyName;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
parameters: NodeArray<ParameterDeclaration>;
|
||||
@@ -525,7 +527,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.ConstructSignature;
|
||||
}
|
||||
type BindingName = Identifier | BindingPattern;
|
||||
interface VariableDeclaration extends Declaration {
|
||||
interface VariableDeclaration extends NamedDeclaration {
|
||||
kind: SyntaxKind.VariableDeclaration;
|
||||
parent?: VariableDeclarationList | CatchClause;
|
||||
name: BindingName;
|
||||
@@ -537,7 +539,7 @@ declare namespace ts {
|
||||
parent?: VariableStatement | ForStatement | ForOfStatement | ForInStatement;
|
||||
declarations: NodeArray<VariableDeclaration>;
|
||||
}
|
||||
interface ParameterDeclaration extends Declaration {
|
||||
interface ParameterDeclaration extends NamedDeclaration {
|
||||
kind: SyntaxKind.Parameter;
|
||||
parent?: SignatureDeclaration;
|
||||
dotDotDotToken?: DotDotDotToken;
|
||||
@@ -546,7 +548,7 @@ declare namespace ts {
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface BindingElement extends Declaration {
|
||||
interface BindingElement extends NamedDeclaration {
|
||||
kind: SyntaxKind.BindingElement;
|
||||
parent?: BindingPattern;
|
||||
propertyName?: PropertyName;
|
||||
@@ -568,7 +570,7 @@ declare namespace ts {
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface ObjectLiteralElement extends Declaration {
|
||||
interface ObjectLiteralElement extends NamedDeclaration {
|
||||
_objectLiteralBrandBrand: any;
|
||||
name?: PropertyName;
|
||||
}
|
||||
@@ -590,7 +592,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.SpreadAssignment;
|
||||
expression: Expression;
|
||||
}
|
||||
interface VariableLikeDeclaration extends Declaration {
|
||||
interface VariableLikeDeclaration extends NamedDeclaration {
|
||||
propertyName?: PropertyName;
|
||||
dotDotDotToken?: DotDotDotToken;
|
||||
name: DeclarationName;
|
||||
@@ -598,7 +600,7 @@ declare namespace ts {
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface PropertyLikeDeclaration extends Declaration {
|
||||
interface PropertyLikeDeclaration extends NamedDeclaration {
|
||||
name: PropertyName;
|
||||
}
|
||||
interface ObjectBindingPattern extends Node {
|
||||
@@ -950,7 +952,7 @@ declare namespace ts {
|
||||
}
|
||||
type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression | ParenthesizedExpression;
|
||||
type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;
|
||||
interface PropertyAccessExpression extends MemberExpression, Declaration {
|
||||
interface PropertyAccessExpression extends MemberExpression, NamedDeclaration {
|
||||
kind: SyntaxKind.PropertyAccessExpression;
|
||||
expression: LeftHandSideExpression;
|
||||
name: Identifier;
|
||||
@@ -1197,7 +1199,7 @@ declare namespace ts {
|
||||
block: Block;
|
||||
}
|
||||
type DeclarationWithTypeParameters = SignatureDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration;
|
||||
interface ClassLikeDeclaration extends Declaration {
|
||||
interface ClassLikeDeclaration extends NamedDeclaration {
|
||||
name?: Identifier;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
heritageClauses?: NodeArray<HeritageClause>;
|
||||
@@ -1210,11 +1212,11 @@ declare namespace ts {
|
||||
interface ClassExpression extends ClassLikeDeclaration, PrimaryExpression {
|
||||
kind: SyntaxKind.ClassExpression;
|
||||
}
|
||||
interface ClassElement extends Declaration {
|
||||
interface ClassElement extends NamedDeclaration {
|
||||
_classElementBrand: any;
|
||||
name?: PropertyName;
|
||||
}
|
||||
interface TypeElement extends Declaration {
|
||||
interface TypeElement extends NamedDeclaration {
|
||||
_typeElementBrand: any;
|
||||
name?: PropertyName;
|
||||
questionToken?: QuestionToken;
|
||||
@@ -1238,7 +1240,7 @@ declare namespace ts {
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
type: TypeNode;
|
||||
}
|
||||
interface EnumMember extends Declaration {
|
||||
interface EnumMember extends NamedDeclaration {
|
||||
kind: SyntaxKind.EnumMember;
|
||||
parent?: EnumDeclaration;
|
||||
name: PropertyName;
|
||||
@@ -1297,13 +1299,13 @@ declare namespace ts {
|
||||
moduleSpecifier: Expression;
|
||||
}
|
||||
type NamedImportBindings = NamespaceImport | NamedImports;
|
||||
interface ImportClause extends Declaration {
|
||||
interface ImportClause extends NamedDeclaration {
|
||||
kind: SyntaxKind.ImportClause;
|
||||
parent?: ImportDeclaration;
|
||||
name?: Identifier;
|
||||
namedBindings?: NamedImportBindings;
|
||||
}
|
||||
interface NamespaceImport extends Declaration {
|
||||
interface NamespaceImport extends NamedDeclaration {
|
||||
kind: SyntaxKind.NamespaceImport;
|
||||
parent?: ImportClause;
|
||||
name: Identifier;
|
||||
@@ -1330,13 +1332,13 @@ declare namespace ts {
|
||||
elements: NodeArray<ExportSpecifier>;
|
||||
}
|
||||
type NamedImportsOrExports = NamedImports | NamedExports;
|
||||
interface ImportSpecifier extends Declaration {
|
||||
interface ImportSpecifier extends NamedDeclaration {
|
||||
kind: SyntaxKind.ImportSpecifier;
|
||||
parent?: NamedImports;
|
||||
propertyName?: Identifier;
|
||||
name: Identifier;
|
||||
}
|
||||
interface ExportSpecifier extends Declaration {
|
||||
interface ExportSpecifier extends NamedDeclaration {
|
||||
kind: SyntaxKind.ExportSpecifier;
|
||||
parent?: NamedExports;
|
||||
propertyName?: Identifier;
|
||||
@@ -1467,7 +1469,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.JSDocTypeTag;
|
||||
typeExpression: JSDocTypeExpression;
|
||||
}
|
||||
interface JSDocTypedefTag extends JSDocTag, Declaration {
|
||||
interface JSDocTypedefTag extends JSDocTag, NamedDeclaration {
|
||||
kind: SyntaxKind.JSDocTypedefTag;
|
||||
fullName?: JSDocNamespaceDeclaration | Identifier;
|
||||
name?: Identifier;
|
||||
|
||||
+214
-131
@@ -8249,6 +8249,36 @@ var ts;
|
||||
return false;
|
||||
}
|
||||
ts.isDeclarationName = isDeclarationName;
|
||||
function getNameOfDeclaration(declaration) {
|
||||
if (!declaration) {
|
||||
return undefined;
|
||||
}
|
||||
if (declaration.kind === 194 /* BinaryExpression */) {
|
||||
var kind = getSpecialPropertyAssignmentKind(declaration);
|
||||
var lhs = declaration.left;
|
||||
switch (kind) {
|
||||
case 0 /* None */:
|
||||
case 2 /* ModuleExports */:
|
||||
return undefined;
|
||||
case 1 /* ExportsProperty */:
|
||||
if (lhs.kind === 71 /* Identifier */) {
|
||||
return lhs.name;
|
||||
}
|
||||
else {
|
||||
return lhs.expression.name;
|
||||
}
|
||||
case 4 /* ThisProperty */:
|
||||
case 5 /* Property */:
|
||||
return lhs.name;
|
||||
case 3 /* PrototypeProperty */:
|
||||
return lhs.expression.name;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return declaration.name;
|
||||
}
|
||||
}
|
||||
ts.getNameOfDeclaration = getNameOfDeclaration;
|
||||
function isLiteralComputedPropertyDeclarationName(node) {
|
||||
return (node.kind === 9 /* StringLiteral */ || node.kind === 8 /* NumericLiteral */) &&
|
||||
node.parent.kind === 144 /* ComputedPropertyName */ &&
|
||||
@@ -8462,7 +8492,8 @@ var ts;
|
||||
* Symbol.
|
||||
*/
|
||||
function hasDynamicName(declaration) {
|
||||
return declaration.name && isDynamicName(declaration.name);
|
||||
var name = getNameOfDeclaration(declaration);
|
||||
return name && isDynamicName(name);
|
||||
}
|
||||
ts.hasDynamicName = hasDynamicName;
|
||||
function isDynamicName(name) {
|
||||
@@ -13679,9 +13710,10 @@ var ts;
|
||||
}
|
||||
ts.getDeclarationName = getDeclarationName;
|
||||
function getName(node, allowComments, allowSourceMaps, emitFlags) {
|
||||
if (node.name && ts.isIdentifier(node.name) && !ts.isGeneratedIdentifier(node.name)) {
|
||||
var name = ts.getMutableClone(node.name);
|
||||
emitFlags |= ts.getEmitFlags(node.name);
|
||||
var nodeName = ts.getNameOfDeclaration(node);
|
||||
if (nodeName && ts.isIdentifier(nodeName) && !ts.isGeneratedIdentifier(nodeName)) {
|
||||
var name = ts.getMutableClone(nodeName);
|
||||
emitFlags |= ts.getEmitFlags(nodeName);
|
||||
if (!allowSourceMaps)
|
||||
emitFlags |= 48 /* NoSourceMap */;
|
||||
if (!allowComments)
|
||||
@@ -21510,12 +21542,13 @@ var ts;
|
||||
// Should not be called on a declaration with a computed property name,
|
||||
// unless it is a well known Symbol.
|
||||
function getDeclarationName(node) {
|
||||
if (node.name) {
|
||||
var name = ts.getNameOfDeclaration(node);
|
||||
if (name) {
|
||||
if (ts.isAmbientModule(node)) {
|
||||
return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + node.name.text + "\"";
|
||||
return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + name.text + "\"";
|
||||
}
|
||||
if (node.name.kind === 144 /* ComputedPropertyName */) {
|
||||
var nameExpression = node.name.expression;
|
||||
if (name.kind === 144 /* ComputedPropertyName */) {
|
||||
var nameExpression = name.expression;
|
||||
// treat computed property names where expression is string/numeric literal as just string/numeric literal
|
||||
if (ts.isStringOrNumericLiteral(nameExpression)) {
|
||||
return nameExpression.text;
|
||||
@@ -21523,7 +21556,7 @@ var ts;
|
||||
ts.Debug.assert(ts.isWellKnownSymbolSyntactically(nameExpression));
|
||||
return ts.getPropertyNameForKnownSymbolName(nameExpression.name.text);
|
||||
}
|
||||
return node.name.text;
|
||||
return name.text;
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 152 /* Constructor */:
|
||||
@@ -21667,9 +21700,9 @@ var ts;
|
||||
}
|
||||
}
|
||||
ts.forEach(symbol.declarations, function (declaration) {
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message_1, getDisplayName(declaration)));
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(ts.getNameOfDeclaration(declaration) || declaration, message_1, getDisplayName(declaration)));
|
||||
});
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message_1, getDisplayName(node)));
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(ts.getNameOfDeclaration(node) || node, message_1, getDisplayName(node)));
|
||||
symbol = createSymbol(0 /* None */, name);
|
||||
}
|
||||
}
|
||||
@@ -25965,16 +25998,16 @@ var ts;
|
||||
recordMergedSymbol(target, source);
|
||||
}
|
||||
else if (target.flags & 1024 /* NamespaceModule */) {
|
||||
error(source.declarations[0].name, ts.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, symbolToString(target));
|
||||
error(ts.getNameOfDeclaration(source.declarations[0]), ts.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, symbolToString(target));
|
||||
}
|
||||
else {
|
||||
var message_2 = target.flags & 2 /* BlockScopedVariable */ || source.flags & 2 /* BlockScopedVariable */
|
||||
? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0;
|
||||
ts.forEach(source.declarations, function (node) {
|
||||
error(node.name ? node.name : node, message_2, symbolToString(source));
|
||||
error(ts.getNameOfDeclaration(node) || node, message_2, symbolToString(source));
|
||||
});
|
||||
ts.forEach(target.declarations, function (node) {
|
||||
error(node.name ? node.name : node, message_2, symbolToString(source));
|
||||
error(ts.getNameOfDeclaration(node) || node, message_2, symbolToString(source));
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -26102,7 +26135,8 @@ var ts;
|
||||
var useFile = ts.getSourceFileOfNode(usage);
|
||||
if (declarationFile !== useFile) {
|
||||
if ((modulekind && (declarationFile.externalModuleIndicator || useFile.externalModuleIndicator)) ||
|
||||
(!compilerOptions.outFile && !compilerOptions.out)) {
|
||||
(!compilerOptions.outFile && !compilerOptions.out) ||
|
||||
ts.isInAmbientContext(declaration)) {
|
||||
// nodes are in different files and order cannot be determined
|
||||
return true;
|
||||
}
|
||||
@@ -26566,13 +26600,13 @@ var ts;
|
||||
ts.Debug.assert(declaration !== undefined, "Declaration to checkResolvedBlockScopedVariable is undefined");
|
||||
if (!ts.isInAmbientContext(declaration) && !isBlockScopedNameDeclaredBeforeUse(declaration, errorLocation)) {
|
||||
if (result.flags & 2 /* BlockScopedVariable */) {
|
||||
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
else if (result.flags & 32 /* Class */) {
|
||||
error(errorLocation, ts.Diagnostics.Class_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Class_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
else if (result.flags & 384 /* Enum */) {
|
||||
error(errorLocation, ts.Diagnostics.Enum_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Enum_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -27948,8 +27982,9 @@ var ts;
|
||||
function getNameOfSymbol(symbol) {
|
||||
var declaration = ts.firstOrUndefined(symbol.declarations);
|
||||
if (declaration) {
|
||||
if (declaration.name) {
|
||||
return ts.declarationNameToString(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
return ts.declarationNameToString(name);
|
||||
}
|
||||
if (declaration.parent && declaration.parent.kind === 226 /* VariableDeclaration */) {
|
||||
return ts.declarationNameToString(declaration.parent.name);
|
||||
@@ -28030,8 +28065,9 @@ var ts;
|
||||
function getNameOfSymbol(symbol) {
|
||||
if (symbol.declarations && symbol.declarations.length) {
|
||||
var declaration = symbol.declarations[0];
|
||||
if (declaration.name) {
|
||||
return ts.declarationNameToString(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
return ts.declarationNameToString(name);
|
||||
}
|
||||
if (declaration.parent && declaration.parent.kind === 226 /* VariableDeclaration */) {
|
||||
return ts.declarationNameToString(declaration.parent.name);
|
||||
@@ -31222,8 +31258,9 @@ var ts;
|
||||
type = anyType;
|
||||
if (noImplicitAny) {
|
||||
var declaration = signature.declaration;
|
||||
if (declaration.name) {
|
||||
error(declaration.name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(declaration.name));
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
error(name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(name));
|
||||
}
|
||||
else {
|
||||
error(declaration, ts.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions);
|
||||
@@ -33350,29 +33387,6 @@ var ts;
|
||||
}
|
||||
return 0 /* False */;
|
||||
}
|
||||
// Check if a property with the given name is known anywhere in the given type. In an object type, a property
|
||||
// is considered known if the object type is empty and the check is for assignability, if the object type has
|
||||
// index signatures, or if the property is actually declared in the object type. In a union or intersection
|
||||
// type, a property is considered known if it is known in any constituent type.
|
||||
function isKnownProperty(type, name, isComparingJsxAttributes) {
|
||||
if (type.flags & 32768 /* Object */) {
|
||||
var resolved = resolveStructuredTypeMembers(type);
|
||||
if (resolved.stringIndexInfo || resolved.numberIndexInfo && isNumericLiteralName(name) ||
|
||||
getPropertyOfType(type, name) || isComparingJsxAttributes && !isUnhyphenatedJsxName(name)) {
|
||||
// For JSXAttributes, if the attribute has a hyphenated name, consider that the attribute to be known.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (type.flags & 196608 /* UnionOrIntersection */) {
|
||||
for (var _i = 0, _a = type.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
if (isKnownProperty(t, name, isComparingJsxAttributes)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function hasExcessProperties(source, target, reportErrors) {
|
||||
if (maybeTypeOfKind(target, 32768 /* Object */) && !(getObjectFlags(target) & 512 /* ObjectLiteralPatternWithComputedProperties */)) {
|
||||
var isComparingJsxAttributes = !!(source.flags & 33554432 /* JsxAttributes */);
|
||||
@@ -34523,7 +34537,7 @@ var ts;
|
||||
default:
|
||||
diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type;
|
||||
}
|
||||
error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString);
|
||||
error(declaration, diagnostic, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)), typeAsString);
|
||||
}
|
||||
function reportErrorsFromWidening(declaration, type) {
|
||||
if (produceDiagnostics && noImplicitAny && type.flags & 2097152 /* ContainsWideningType */) {
|
||||
@@ -36303,7 +36317,7 @@ var ts;
|
||||
if (type === autoType || type === autoArrayType) {
|
||||
if (flowType === autoType || flowType === autoArrayType) {
|
||||
if (noImplicitAny) {
|
||||
error(declaration.name, ts.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));
|
||||
error(ts.getNameOfDeclaration(declaration), ts.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));
|
||||
error(node, ts.Diagnostics.Variable_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType));
|
||||
}
|
||||
return convertAutoToAny(flowType);
|
||||
@@ -37581,6 +37595,8 @@ var ts;
|
||||
var spread = emptyObjectType;
|
||||
var attributesArray = [];
|
||||
var hasSpreadAnyType = false;
|
||||
var explicitlySpecifyChildrenAttribute = false;
|
||||
var jsxChildrenPropertyName = getJsxElementChildrenPropertyname();
|
||||
for (var _i = 0, _a = attributes.properties; _i < _a.length; _i++) {
|
||||
var attributeDecl = _a[_i];
|
||||
var member = attributeDecl.symbol;
|
||||
@@ -37598,6 +37614,9 @@ var ts;
|
||||
attributeSymbol.target = member;
|
||||
attributesTable.set(attributeSymbol.name, attributeSymbol);
|
||||
attributesArray.push(attributeSymbol);
|
||||
if (attributeDecl.name.text === jsxChildrenPropertyName) {
|
||||
explicitlySpecifyChildrenAttribute = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
ts.Debug.assert(attributeDecl.kind === 255 /* JsxSpreadAttribute */);
|
||||
@@ -37606,11 +37625,7 @@ var ts;
|
||||
attributesArray = [];
|
||||
attributesTable = ts.createMap();
|
||||
}
|
||||
var exprType = checkExpression(attributeDecl.expression);
|
||||
if (!isValidSpreadType(exprType)) {
|
||||
error(attributeDecl, ts.Diagnostics.Spread_types_may_only_be_created_from_object_types);
|
||||
hasSpreadAnyType = true;
|
||||
}
|
||||
var exprType = getApparentType(checkExpression(attributeDecl.expression));
|
||||
if (isTypeAny(exprType)) {
|
||||
hasSpreadAnyType = true;
|
||||
}
|
||||
@@ -37653,11 +37668,11 @@ var ts;
|
||||
childrenTypes.push(checkExpression(child, checkMode));
|
||||
}
|
||||
}
|
||||
// Error if there is a attribute named "children" and children element.
|
||||
// This is because children element will overwrite the value from attributes
|
||||
var jsxChildrenPropertyName = getJsxElementChildrenPropertyname();
|
||||
if (!hasSpreadAnyType && jsxChildrenPropertyName && jsxChildrenPropertyName !== "") {
|
||||
if (attributesTable.has(jsxChildrenPropertyName)) {
|
||||
// Error if there is a attribute named "children" explicitly specified and children element.
|
||||
// This is because children element will overwrite the value from attributes.
|
||||
// Note: we will not warn "children" attribute overwritten if "children" attribute is specified in object spread.
|
||||
if (explicitlySpecifyChildrenAttribute) {
|
||||
error(attributes, ts.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten, jsxChildrenPropertyName);
|
||||
}
|
||||
// If there are children in the body of JSX element, create dummy attribute "children" with anyType so that it will pass the attribute checking process
|
||||
@@ -37676,8 +37691,7 @@ var ts;
|
||||
*/
|
||||
function createJsxAttributesType(symbol, attributesTable) {
|
||||
var result = createAnonymousType(symbol, attributesTable, emptyArray, emptyArray, /*stringIndexInfo*/ undefined, /*numberIndexInfo*/ undefined);
|
||||
var freshObjectLiteralFlag = compilerOptions.suppressExcessPropertyErrors ? 0 : 1048576 /* FreshLiteral */;
|
||||
result.flags |= 33554432 /* JsxAttributes */ | 4194304 /* ContainsObjectLiteral */ | freshObjectLiteralFlag;
|
||||
result.flags |= 33554432 /* JsxAttributes */ | 4194304 /* ContainsObjectLiteral */;
|
||||
result.objectFlags |= 128 /* ObjectLiteral */;
|
||||
return result;
|
||||
}
|
||||
@@ -37818,6 +37832,20 @@ var ts;
|
||||
}
|
||||
return _jsxElementChildrenPropertyName;
|
||||
}
|
||||
function getApparentTypeOfJsxPropsType(propsType) {
|
||||
if (!propsType) {
|
||||
return undefined;
|
||||
}
|
||||
if (propsType.flags & 131072 /* Intersection */) {
|
||||
var propsApparentType = [];
|
||||
for (var _i = 0, _a = propsType.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
propsApparentType.push(getApparentType(t));
|
||||
}
|
||||
return getIntersectionType(propsApparentType);
|
||||
}
|
||||
return getApparentType(propsType);
|
||||
}
|
||||
/**
|
||||
* Get JSX attributes type by trying to resolve openingLikeElement as a stateless function component.
|
||||
* Return only attributes type of successfully resolved call signature.
|
||||
@@ -37838,6 +37866,7 @@ var ts;
|
||||
if (callSignature !== unknownSignature) {
|
||||
var callReturnType = callSignature && getReturnTypeOfSignature(callSignature);
|
||||
var paramType = callReturnType && (callSignature.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(callSignature.parameters[0]));
|
||||
paramType = getApparentTypeOfJsxPropsType(paramType);
|
||||
if (callReturnType && isTypeAssignableTo(callReturnType, jsxStatelessElementType)) {
|
||||
// Intersect in JSX.IntrinsicAttributes if it exists
|
||||
var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes);
|
||||
@@ -37876,6 +37905,7 @@ var ts;
|
||||
var candidate = candidatesOutArray_1[_i];
|
||||
var callReturnType = getReturnTypeOfSignature(candidate);
|
||||
var paramType = callReturnType && (candidate.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(candidate.parameters[0]));
|
||||
paramType = getApparentTypeOfJsxPropsType(paramType);
|
||||
if (callReturnType && isTypeAssignableTo(callReturnType, jsxStatelessElementType)) {
|
||||
var shouldBeCandidate = true;
|
||||
for (var _a = 0, _b = openingLikeElement.attributes.properties; _a < _b.length; _a++) {
|
||||
@@ -38150,6 +38180,34 @@ var ts;
|
||||
}
|
||||
checkJsxAttributesAssignableToTagNameAttributes(node);
|
||||
}
|
||||
/**
|
||||
* Check if a property with the given name is known anywhere in the given type. In an object type, a property
|
||||
* is considered known if the object type is empty and the check is for assignability, if the object type has
|
||||
* index signatures, or if the property is actually declared in the object type. In a union or intersection
|
||||
* type, a property is considered known if it is known in any constituent type.
|
||||
* @param targetType a type to search a given name in
|
||||
* @param name a property name to search
|
||||
* @param isComparingJsxAttributes a boolean flag indicating whether we are searching in JsxAttributesType
|
||||
*/
|
||||
function isKnownProperty(targetType, name, isComparingJsxAttributes) {
|
||||
if (targetType.flags & 32768 /* Object */) {
|
||||
var resolved = resolveStructuredTypeMembers(targetType);
|
||||
if (resolved.stringIndexInfo || resolved.numberIndexInfo && isNumericLiteralName(name) ||
|
||||
getPropertyOfType(targetType, name) || isComparingJsxAttributes && !isUnhyphenatedJsxName(name)) {
|
||||
// For JSXAttributes, if the attribute has a hyphenated name, consider that the attribute to be known.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (targetType.flags & 196608 /* UnionOrIntersection */) {
|
||||
for (var _i = 0, _a = targetType.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
if (isKnownProperty(t, name, isComparingJsxAttributes)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Check whether the given attributes of JSX opening-like element is assignable to the tagName attributes.
|
||||
* Get the attributes type of the opening-like element through resolving the tagName, "target attributes"
|
||||
@@ -38178,7 +38236,20 @@ var ts;
|
||||
error(openingLikeElement, ts.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property, getJsxElementPropertiesName());
|
||||
}
|
||||
else {
|
||||
checkTypeAssignableTo(sourceAttributesType, targetAttributesType, openingLikeElement.attributes.properties.length > 0 ? openingLikeElement.attributes : openingLikeElement);
|
||||
// Check if sourceAttributesType assignable to targetAttributesType though this check will allow excess properties
|
||||
var isSourceAttributeTypeAssignableToTarget = checkTypeAssignableTo(sourceAttributesType, targetAttributesType, openingLikeElement.attributes.properties.length > 0 ? openingLikeElement.attributes : openingLikeElement);
|
||||
// After we check for assignability, we will do another pass to check that all explicitly specified attributes have correct name corresponding in targetAttributeType.
|
||||
// This will allow excess properties in spread type as it is very common pattern to spread outter attributes into React component in its render method.
|
||||
if (isSourceAttributeTypeAssignableToTarget && !isTypeAny(sourceAttributesType) && !isTypeAny(targetAttributesType)) {
|
||||
for (var _i = 0, _a = openingLikeElement.attributes.properties; _i < _a.length; _i++) {
|
||||
var attribute = _a[_i];
|
||||
if (ts.isJsxAttribute(attribute) && !isKnownProperty(targetAttributesType, attribute.name.text, /*isComparingJsxAttributes*/ true)) {
|
||||
error(attribute, ts.Diagnostics.Property_0_does_not_exist_on_type_1, attribute.name.text, typeToString(targetAttributesType));
|
||||
// We break here so that errors won't be cascading
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function checkJsxExpression(node, checkMode) {
|
||||
@@ -39507,7 +39578,7 @@ var ts;
|
||||
// only the class declaration node will have the Abstract flag set.
|
||||
var valueDecl = expressionType.symbol && getClassLikeDeclarationOfSymbol(expressionType.symbol);
|
||||
if (valueDecl && ts.getModifierFlags(valueDecl) & 128 /* Abstract */) {
|
||||
error(node, ts.Diagnostics.Cannot_create_an_instance_of_the_abstract_class_0, ts.declarationNameToString(valueDecl.name));
|
||||
error(node, ts.Diagnostics.Cannot_create_an_instance_of_the_abstract_class_0, ts.declarationNameToString(ts.getNameOfDeclaration(valueDecl)));
|
||||
return resolveErrorCall(node);
|
||||
}
|
||||
// TS 1.0 spec: 4.11
|
||||
@@ -39918,11 +39989,11 @@ var ts;
|
||||
var links = getSymbolLinks(parameter);
|
||||
if (!links.type) {
|
||||
links.type = instantiateType(contextualType, mapper);
|
||||
var name = ts.getNameOfDeclaration(parameter.valueDeclaration);
|
||||
// if inference didn't come up with anything but {}, fall back to the binding pattern if present.
|
||||
if (links.type === emptyObjectType &&
|
||||
(parameter.valueDeclaration.name.kind === 174 /* ObjectBindingPattern */ ||
|
||||
parameter.valueDeclaration.name.kind === 175 /* ArrayBindingPattern */)) {
|
||||
links.type = getTypeFromBindingPattern(parameter.valueDeclaration.name);
|
||||
(name.kind === 174 /* ObjectBindingPattern */ || name.kind === 175 /* ArrayBindingPattern */)) {
|
||||
links.type = getTypeFromBindingPattern(name);
|
||||
}
|
||||
assignBindingElementTypes(parameter.valueDeclaration);
|
||||
}
|
||||
@@ -41597,7 +41668,7 @@ var ts;
|
||||
continue;
|
||||
}
|
||||
if (names.get(memberName)) {
|
||||
error(member.symbol.valueDeclaration.name, ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
error(ts.getNameOfDeclaration(member.symbol.valueDeclaration), ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
error(member.name, ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
}
|
||||
else {
|
||||
@@ -41685,7 +41756,8 @@ var ts;
|
||||
return;
|
||||
}
|
||||
function containsSuperCallAsComputedPropertyName(n) {
|
||||
return n.name && containsSuperCall(n.name);
|
||||
var name = ts.getNameOfDeclaration(n);
|
||||
return name && containsSuperCall(name);
|
||||
}
|
||||
function containsSuperCall(n) {
|
||||
if (ts.isSuperCall(n)) {
|
||||
@@ -41945,16 +42017,16 @@ var ts;
|
||||
ts.forEach(overloads, function (o) {
|
||||
var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags_1;
|
||||
if (deviation & 1 /* Export */) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);
|
||||
}
|
||||
else if (deviation & 2 /* Ambient */) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);
|
||||
}
|
||||
else if (deviation & (8 /* Private */ | 16 /* Protected */)) {
|
||||
error(o.name || o, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);
|
||||
error(ts.getNameOfDeclaration(o) || o, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);
|
||||
}
|
||||
else if (deviation & 128 /* Abstract */) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -41965,7 +42037,7 @@ var ts;
|
||||
ts.forEach(overloads, function (o) {
|
||||
var deviation = ts.hasQuestionToken(o) !== canonicalHasQuestionToken_1;
|
||||
if (deviation) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -42089,7 +42161,7 @@ var ts;
|
||||
}
|
||||
if (duplicateFunctionDeclaration) {
|
||||
ts.forEach(declarations, function (declaration) {
|
||||
error(declaration.name, ts.Diagnostics.Duplicate_function_implementation);
|
||||
error(ts.getNameOfDeclaration(declaration), ts.Diagnostics.Duplicate_function_implementation);
|
||||
});
|
||||
}
|
||||
// Abstract methods can't have an implementation -- in particular, they don't need one.
|
||||
@@ -42162,12 +42234,13 @@ var ts;
|
||||
for (var _b = 0, _c = symbol.declarations; _b < _c.length; _b++) {
|
||||
var d = _c[_b];
|
||||
var declarationSpaces = getDeclarationSpaces(d);
|
||||
var name = ts.getNameOfDeclaration(d);
|
||||
// Only error on the declarations that contributed to the intersecting spaces.
|
||||
if (declarationSpaces & commonDeclarationSpacesForDefaultAndNonDefault) {
|
||||
error(d.name, ts.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, ts.declarationNameToString(d.name));
|
||||
error(name, ts.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, ts.declarationNameToString(name));
|
||||
}
|
||||
else if (declarationSpaces & commonDeclarationSpacesForExportsAndLocals) {
|
||||
error(d.name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(d.name));
|
||||
error(name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(name));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -42673,15 +42746,16 @@ var ts;
|
||||
if (!local.isReferenced) {
|
||||
if (local.valueDeclaration && ts.getRootDeclaration(local.valueDeclaration).kind === 146 /* Parameter */) {
|
||||
var parameter = ts.getRootDeclaration(local.valueDeclaration);
|
||||
var name = ts.getNameOfDeclaration(local.valueDeclaration);
|
||||
if (compilerOptions.noUnusedParameters &&
|
||||
!ts.isParameterPropertyDeclaration(parameter) &&
|
||||
!ts.parameterIsThisKeyword(parameter) &&
|
||||
!parameterNameStartsWithUnderscore(local.valueDeclaration.name)) {
|
||||
error(local.valueDeclaration.name, ts.Diagnostics._0_is_declared_but_never_used, local.name);
|
||||
!parameterNameStartsWithUnderscore(name)) {
|
||||
error(name, ts.Diagnostics._0_is_declared_but_never_used, local.name);
|
||||
}
|
||||
}
|
||||
else if (compilerOptions.noUnusedLocals) {
|
||||
ts.forEach(local.declarations, function (d) { return errorUnusedLocal(d.name || d, local.name); });
|
||||
ts.forEach(local.declarations, function (d) { return errorUnusedLocal(ts.getNameOfDeclaration(d) || d, local.name); });
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -42761,7 +42835,7 @@ var ts;
|
||||
for (var _i = 0, _a = local.declarations; _i < _a.length; _i++) {
|
||||
var declaration = _a[_i];
|
||||
if (!ts.isAmbientModule(declaration)) {
|
||||
errorUnusedLocal(declaration.name, local.name);
|
||||
errorUnusedLocal(ts.getNameOfDeclaration(declaration), local.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -42829,7 +42903,7 @@ var ts;
|
||||
if (getNodeCheckFlags(current) & 4 /* CaptureThis */) {
|
||||
var isDeclaration_1 = node.kind !== 71 /* Identifier */;
|
||||
if (isDeclaration_1) {
|
||||
error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);
|
||||
error(ts.getNameOfDeclaration(node), ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);
|
||||
}
|
||||
else {
|
||||
error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference);
|
||||
@@ -42843,7 +42917,7 @@ var ts;
|
||||
if (getNodeCheckFlags(current) & 8 /* CaptureNewTarget */) {
|
||||
var isDeclaration_2 = node.kind !== 71 /* Identifier */;
|
||||
if (isDeclaration_2) {
|
||||
error(node.name, ts.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);
|
||||
error(ts.getNameOfDeclaration(node), ts.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);
|
||||
}
|
||||
else {
|
||||
error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference);
|
||||
@@ -43109,7 +43183,7 @@ var ts;
|
||||
checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, /*headMessage*/ undefined);
|
||||
}
|
||||
if (!areDeclarationFlagsIdentical(node, symbol.valueDeclaration)) {
|
||||
error(symbol.valueDeclaration.name, ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
error(ts.getNameOfDeclaration(symbol.valueDeclaration), ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
error(node.name, ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
}
|
||||
}
|
||||
@@ -43836,15 +43910,15 @@ var ts;
|
||||
}
|
||||
var propDeclaration = prop.valueDeclaration;
|
||||
// index is numeric and property name is not valid numeric literal
|
||||
if (indexKind === 1 /* Number */ && !(propDeclaration ? isNumericName(propDeclaration.name) : isNumericLiteralName(prop.name))) {
|
||||
if (indexKind === 1 /* Number */ && !(propDeclaration ? isNumericName(ts.getNameOfDeclaration(propDeclaration)) : isNumericLiteralName(prop.name))) {
|
||||
return;
|
||||
}
|
||||
// perform property check if property or indexer is declared in 'type'
|
||||
// this allows to rule out cases when both property and indexer are inherited from the base class
|
||||
// this allows us to rule out cases when both property and indexer are inherited from the base class
|
||||
var errorNode;
|
||||
if (propDeclaration &&
|
||||
(ts.getSpecialPropertyAssignmentKind(propDeclaration) === 4 /* ThisProperty */ ||
|
||||
propDeclaration.name.kind === 144 /* ComputedPropertyName */ ||
|
||||
(propDeclaration.kind === 194 /* BinaryExpression */ ||
|
||||
ts.getNameOfDeclaration(propDeclaration).kind === 144 /* ComputedPropertyName */ ||
|
||||
prop.parent === containingType.symbol)) {
|
||||
errorNode = propDeclaration;
|
||||
}
|
||||
@@ -44168,7 +44242,7 @@ var ts;
|
||||
else {
|
||||
errorMessage = ts.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function;
|
||||
}
|
||||
error(derived.valueDeclaration.name || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
||||
error(ts.getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -44463,7 +44537,7 @@ var ts;
|
||||
// check that const is placed\omitted on all enum declarations
|
||||
ts.forEach(enumSymbol.declarations, function (decl) {
|
||||
if (ts.isConstEnumDeclaration(decl) !== enumIsConst) {
|
||||
error(decl.name, ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const);
|
||||
error(ts.getNameOfDeclaration(decl), ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -55839,7 +55913,7 @@ var ts;
|
||||
if (enabledSubstitutions & 2 /* BlockScopedBindings */ && !ts.isInternalName(node)) {
|
||||
var declaration = resolver.getReferencedDeclarationWithCollidingName(node);
|
||||
if (declaration && !(ts.isClassLike(declaration) && isPartOfClassBody(declaration, node))) {
|
||||
return ts.setTextRange(ts.getGeneratedNameForNode(declaration.name), node);
|
||||
return ts.setTextRange(ts.getGeneratedNameForNode(ts.getNameOfDeclaration(declaration)), node);
|
||||
}
|
||||
}
|
||||
return node;
|
||||
@@ -62374,7 +62448,7 @@ var ts;
|
||||
var errorNameNode;
|
||||
var emitJsDocComments = compilerOptions.removeComments ? ts.noop : writeJsDocComments;
|
||||
var emit = compilerOptions.stripInternal ? stripInternal : emitNode;
|
||||
var noDeclare;
|
||||
var needsDeclare = true;
|
||||
var moduleElementDeclarationEmitInfo = [];
|
||||
var asynchronousSubModuleDeclarationEmitInfo;
|
||||
// Contains the reference paths that needs to go in the declaration file.
|
||||
@@ -62410,11 +62484,11 @@ var ts;
|
||||
}
|
||||
resultHasExternalModuleIndicator = false;
|
||||
if (!isBundledEmit || !ts.isExternalModule(sourceFile)) {
|
||||
noDeclare = false;
|
||||
needsDeclare = true;
|
||||
emitSourceFile(sourceFile);
|
||||
}
|
||||
else if (ts.isExternalModule(sourceFile)) {
|
||||
noDeclare = true;
|
||||
needsDeclare = false;
|
||||
write("declare module \"" + ts.getResolvedExternalModuleName(host, sourceFile) + "\" {");
|
||||
writeLine();
|
||||
increaseIndent();
|
||||
@@ -62858,9 +62932,9 @@ var ts;
|
||||
}
|
||||
}
|
||||
}
|
||||
function emitTempVariableDeclaration(expr, baseName, diagnostic) {
|
||||
function emitTempVariableDeclaration(expr, baseName, diagnostic, needsDeclare) {
|
||||
var tempVarName = getExportTempVariableName(baseName);
|
||||
if (!noDeclare) {
|
||||
if (needsDeclare) {
|
||||
write("declare ");
|
||||
}
|
||||
write("const ");
|
||||
@@ -62881,7 +62955,7 @@ var ts;
|
||||
var tempVarName = emitTempVariableDeclaration(node.expression, "_default", {
|
||||
diagnosticMessage: ts.Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0,
|
||||
errorNode: node
|
||||
});
|
||||
}, needsDeclare);
|
||||
write(node.isExportEquals ? "export = " : "export default ");
|
||||
write(tempVarName);
|
||||
}
|
||||
@@ -62965,7 +63039,7 @@ var ts;
|
||||
if (modifiers & 512 /* Default */) {
|
||||
write("default ");
|
||||
}
|
||||
else if (node.kind !== 230 /* InterfaceDeclaration */ && !noDeclare) {
|
||||
else if (node.kind !== 230 /* InterfaceDeclaration */ && needsDeclare) {
|
||||
write("declare ");
|
||||
}
|
||||
}
|
||||
@@ -63329,7 +63403,7 @@ var ts;
|
||||
return {
|
||||
diagnosticMessage: diagnosticMessage,
|
||||
errorNode: node,
|
||||
typeName: node.parent.parent.name
|
||||
typeName: ts.getNameOfDeclaration(node.parent.parent)
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -63355,7 +63429,7 @@ var ts;
|
||||
diagnosticMessage: ts.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,
|
||||
errorNode: baseTypeNode,
|
||||
typeName: node.name
|
||||
});
|
||||
}, !ts.findAncestor(node, function (n) { return n.kind === 233 /* ModuleDeclaration */; }));
|
||||
}
|
||||
emitJsDocComments(node);
|
||||
emitModuleElementDeclarationFlags(node);
|
||||
@@ -70251,7 +70325,7 @@ var ts;
|
||||
case 153 /* GetAccessor */:
|
||||
case 154 /* SetAccessor */:
|
||||
case 233 /* ModuleDeclaration */:
|
||||
return node.parent.name === node;
|
||||
return ts.getNameOfDeclaration(node.parent) === node;
|
||||
case 180 /* ElementAccessExpression */:
|
||||
return node.parent.argumentExpression === node;
|
||||
case 144 /* ComputedPropertyName */:
|
||||
@@ -73800,7 +73874,7 @@ var ts;
|
||||
// TODO(jfreeman): Account for computed property name
|
||||
// NOTE: if one only performs this step when m.name is an identifier,
|
||||
// things like '__proto__' are not filtered out.
|
||||
existingName = m.name.text;
|
||||
existingName = ts.getNameOfDeclaration(m).text;
|
||||
}
|
||||
existingMemberNames.set(existingName, true);
|
||||
}
|
||||
@@ -74996,8 +75070,8 @@ var ts;
|
||||
if (symbol.name !== "default") {
|
||||
return symbol.name;
|
||||
}
|
||||
var name = ts.forEach(symbol.declarations, function (_a) {
|
||||
var name = _a.name;
|
||||
var name = ts.forEach(symbol.declarations, function (decl) {
|
||||
var name = ts.getNameOfDeclaration(decl);
|
||||
return name && name.kind === 71 /* Identifier */ && name.text;
|
||||
});
|
||||
ts.Debug.assert(!!name);
|
||||
@@ -75751,7 +75825,7 @@ var ts;
|
||||
* position of property accessing, the referenceEntry of such position will be handled in the first case.
|
||||
*/
|
||||
if (!(flags & 134217728 /* Transient */) && search.includes(shorthandValueSymbol)) {
|
||||
addReference(valueDeclaration.name, shorthandValueSymbol, search.location, state);
|
||||
addReference(ts.getNameOfDeclaration(valueDeclaration), shorthandValueSymbol, search.location, state);
|
||||
}
|
||||
}
|
||||
function addReference(referenceLocation, relatedSymbol, searchLocation, state) {
|
||||
@@ -76676,7 +76750,7 @@ var ts;
|
||||
}
|
||||
/** Creates a DefinitionInfo from a Declaration, using the declaration's name if possible. */
|
||||
function createDefinitionInfo(node, symbolKind, symbolName, containerName) {
|
||||
return createDefinitionInfoFromName(node.name || node, symbolKind, symbolName, containerName);
|
||||
return createDefinitionInfoFromName(ts.getNameOfDeclaration(node) || node, symbolKind, symbolName, containerName);
|
||||
}
|
||||
/** Creates a DefinitionInfo directly from the name of a declaration. */
|
||||
function createDefinitionInfoFromName(name, symbolKind, symbolName, containerName) {
|
||||
@@ -77314,17 +77388,20 @@ var ts;
|
||||
return undefined;
|
||||
}
|
||||
function tryAddSingleDeclarationName(declaration, containers) {
|
||||
if (declaration && declaration.name) {
|
||||
var text = getTextOfIdentifierOrLiteral(declaration.name);
|
||||
if (text !== undefined) {
|
||||
containers.unshift(text);
|
||||
}
|
||||
else if (declaration.name.kind === 144 /* ComputedPropertyName */) {
|
||||
return tryAddComputedPropertyName(declaration.name.expression, containers, /*includeLastPortion*/ true);
|
||||
}
|
||||
else {
|
||||
// Don't know how to add this.
|
||||
return false;
|
||||
if (declaration) {
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
var text = getTextOfIdentifierOrLiteral(name);
|
||||
if (text !== undefined) {
|
||||
containers.unshift(text);
|
||||
}
|
||||
else if (name.kind === 144 /* ComputedPropertyName */) {
|
||||
return tryAddComputedPropertyName(name.expression, containers, /*includeLastPortion*/ true);
|
||||
}
|
||||
else {
|
||||
// Don't know how to add this.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -77353,8 +77430,9 @@ var ts;
|
||||
var containers = [];
|
||||
// First, if we started with a computed property name, then add all but the last
|
||||
// portion into the container array.
|
||||
if (declaration.name.kind === 144 /* ComputedPropertyName */) {
|
||||
if (!tryAddComputedPropertyName(declaration.name.expression, containers, /*includeLastPortion*/ false)) {
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name.kind === 144 /* ComputedPropertyName */) {
|
||||
if (!tryAddComputedPropertyName(name.expression, containers, /*includeLastPortion*/ false)) {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
@@ -77392,6 +77470,7 @@ var ts;
|
||||
function createNavigateToItem(rawItem) {
|
||||
var declaration = rawItem.declaration;
|
||||
var container = ts.getContainerNode(declaration);
|
||||
var containerName = container && ts.getNameOfDeclaration(container);
|
||||
return {
|
||||
name: rawItem.name,
|
||||
kind: ts.getNodeKind(declaration),
|
||||
@@ -77401,8 +77480,8 @@ var ts;
|
||||
fileName: rawItem.fileName,
|
||||
textSpan: ts.createTextSpanFromNode(declaration),
|
||||
// TODO(jfreeman): What should be the containerName when the container has a computed name?
|
||||
containerName: container && container.name ? container.name.text : "",
|
||||
containerKind: container && container.name ? ts.getNodeKind(container) : ""
|
||||
containerName: containerName ? containerName.text : "",
|
||||
containerKind: containerName ? ts.getNodeKind(container) : ""
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -77654,8 +77733,8 @@ var ts;
|
||||
function mergeChildren(children) {
|
||||
var nameToItems = ts.createMap();
|
||||
ts.filterMutate(children, function (child) {
|
||||
var decl = child.node;
|
||||
var name = decl.name && nodeText(decl.name);
|
||||
var declName = ts.getNameOfDeclaration(child.node);
|
||||
var name = declName && nodeText(declName);
|
||||
if (!name) {
|
||||
// Anonymous items are never merged.
|
||||
return true;
|
||||
@@ -77744,9 +77823,9 @@ var ts;
|
||||
if (node.kind === 233 /* ModuleDeclaration */) {
|
||||
return getModuleName(node);
|
||||
}
|
||||
var decl = node;
|
||||
if (decl.name) {
|
||||
return ts.getPropertyNameForPropertyNameNode(decl.name);
|
||||
var declName = ts.getNameOfDeclaration(node);
|
||||
if (declName) {
|
||||
return ts.getPropertyNameForPropertyNameNode(declName);
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 186 /* FunctionExpression */:
|
||||
@@ -77763,7 +77842,7 @@ var ts;
|
||||
if (node.kind === 233 /* ModuleDeclaration */) {
|
||||
return getModuleName(node);
|
||||
}
|
||||
var name = node.name;
|
||||
var name = ts.getNameOfDeclaration(node);
|
||||
if (name) {
|
||||
var text = nodeText(name);
|
||||
if (text.length > 0) {
|
||||
@@ -82184,7 +82263,7 @@ var ts;
|
||||
// falls through
|
||||
case 149 /* PropertyDeclaration */:
|
||||
case 146 /* Parameter */:
|
||||
return node.name.kind;
|
||||
return ts.getNameOfDeclaration(node).kind;
|
||||
}
|
||||
}
|
||||
function getDynamicIndentation(node, nodeStartLine, indentation, delta) {
|
||||
@@ -85023,7 +85102,7 @@ var ts;
|
||||
}
|
||||
var declaration = declarations[0];
|
||||
// Clone name to remove leading trivia.
|
||||
var name = ts.getSynthesizedClone(declaration.name);
|
||||
var name = ts.getSynthesizedClone(ts.getNameOfDeclaration(declaration));
|
||||
var visibilityModifier = createVisibilityModifier(ts.getModifierFlags(declaration));
|
||||
var modifiers = visibilityModifier ? ts.createNodeArray([visibilityModifier]) : undefined;
|
||||
var type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration));
|
||||
@@ -85584,13 +85663,14 @@ var ts;
|
||||
return declarations;
|
||||
}
|
||||
function getDeclarationName(declaration) {
|
||||
if (declaration.name) {
|
||||
var result_7 = getTextOfIdentifierOrLiteral(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
var result_7 = getTextOfIdentifierOrLiteral(name);
|
||||
if (result_7 !== undefined) {
|
||||
return result_7;
|
||||
}
|
||||
if (declaration.name.kind === 144 /* ComputedPropertyName */) {
|
||||
var expr = declaration.name.expression;
|
||||
if (name.kind === 144 /* ComputedPropertyName */) {
|
||||
var expr = name.expression;
|
||||
if (expr.kind === 179 /* PropertyAccessExpression */) {
|
||||
return expr.name.text;
|
||||
}
|
||||
@@ -88143,6 +88223,9 @@ var ts;
|
||||
var compilerOptions = JSON.parse(compilerOptionsJson);
|
||||
var result = ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
|
||||
var resolvedFileName = result.resolvedModule ? result.resolvedModule.resolvedFileName : undefined;
|
||||
if (result.resolvedModule && result.resolvedModule.extension !== ts.Extension.Ts && result.resolvedModule.extension !== ts.Extension.Tsx && result.resolvedModule.extension !== ts.Extension.Dts) {
|
||||
resolvedFileName = undefined;
|
||||
}
|
||||
return {
|
||||
resolvedFileName: resolvedFileName,
|
||||
failedLookupLocations: result.failedLookupLocations
|
||||
|
||||
Vendored
+21
-19
@@ -491,9 +491,11 @@ declare namespace ts {
|
||||
type DeclarationName = Identifier | StringLiteral | NumericLiteral | ComputedPropertyName | BindingPattern;
|
||||
interface Declaration extends Node {
|
||||
_declarationBrand: any;
|
||||
}
|
||||
interface NamedDeclaration extends Declaration {
|
||||
name?: DeclarationName;
|
||||
}
|
||||
interface DeclarationStatement extends Declaration, Statement {
|
||||
interface DeclarationStatement extends NamedDeclaration, Statement {
|
||||
name?: Identifier | StringLiteral | NumericLiteral;
|
||||
}
|
||||
interface ComputedPropertyName extends Node {
|
||||
@@ -504,7 +506,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.Decorator;
|
||||
expression: LeftHandSideExpression;
|
||||
}
|
||||
interface TypeParameterDeclaration extends Declaration {
|
||||
interface TypeParameterDeclaration extends NamedDeclaration {
|
||||
kind: SyntaxKind.TypeParameter;
|
||||
parent?: DeclarationWithTypeParameters;
|
||||
name: Identifier;
|
||||
@@ -512,7 +514,7 @@ declare namespace ts {
|
||||
default?: TypeNode;
|
||||
expression?: Expression;
|
||||
}
|
||||
interface SignatureDeclaration extends Declaration {
|
||||
interface SignatureDeclaration extends NamedDeclaration {
|
||||
name?: PropertyName;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
parameters: NodeArray<ParameterDeclaration>;
|
||||
@@ -525,7 +527,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.ConstructSignature;
|
||||
}
|
||||
type BindingName = Identifier | BindingPattern;
|
||||
interface VariableDeclaration extends Declaration {
|
||||
interface VariableDeclaration extends NamedDeclaration {
|
||||
kind: SyntaxKind.VariableDeclaration;
|
||||
parent?: VariableDeclarationList | CatchClause;
|
||||
name: BindingName;
|
||||
@@ -537,7 +539,7 @@ declare namespace ts {
|
||||
parent?: VariableStatement | ForStatement | ForOfStatement | ForInStatement;
|
||||
declarations: NodeArray<VariableDeclaration>;
|
||||
}
|
||||
interface ParameterDeclaration extends Declaration {
|
||||
interface ParameterDeclaration extends NamedDeclaration {
|
||||
kind: SyntaxKind.Parameter;
|
||||
parent?: SignatureDeclaration;
|
||||
dotDotDotToken?: DotDotDotToken;
|
||||
@@ -546,7 +548,7 @@ declare namespace ts {
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface BindingElement extends Declaration {
|
||||
interface BindingElement extends NamedDeclaration {
|
||||
kind: SyntaxKind.BindingElement;
|
||||
parent?: BindingPattern;
|
||||
propertyName?: PropertyName;
|
||||
@@ -568,7 +570,7 @@ declare namespace ts {
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface ObjectLiteralElement extends Declaration {
|
||||
interface ObjectLiteralElement extends NamedDeclaration {
|
||||
_objectLiteralBrandBrand: any;
|
||||
name?: PropertyName;
|
||||
}
|
||||
@@ -590,7 +592,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.SpreadAssignment;
|
||||
expression: Expression;
|
||||
}
|
||||
interface VariableLikeDeclaration extends Declaration {
|
||||
interface VariableLikeDeclaration extends NamedDeclaration {
|
||||
propertyName?: PropertyName;
|
||||
dotDotDotToken?: DotDotDotToken;
|
||||
name: DeclarationName;
|
||||
@@ -598,7 +600,7 @@ declare namespace ts {
|
||||
type?: TypeNode;
|
||||
initializer?: Expression;
|
||||
}
|
||||
interface PropertyLikeDeclaration extends Declaration {
|
||||
interface PropertyLikeDeclaration extends NamedDeclaration {
|
||||
name: PropertyName;
|
||||
}
|
||||
interface ObjectBindingPattern extends Node {
|
||||
@@ -950,7 +952,7 @@ declare namespace ts {
|
||||
}
|
||||
type EntityNameExpression = Identifier | PropertyAccessEntityNameExpression | ParenthesizedExpression;
|
||||
type EntityNameOrEntityNameExpression = EntityName | EntityNameExpression;
|
||||
interface PropertyAccessExpression extends MemberExpression, Declaration {
|
||||
interface PropertyAccessExpression extends MemberExpression, NamedDeclaration {
|
||||
kind: SyntaxKind.PropertyAccessExpression;
|
||||
expression: LeftHandSideExpression;
|
||||
name: Identifier;
|
||||
@@ -1197,7 +1199,7 @@ declare namespace ts {
|
||||
block: Block;
|
||||
}
|
||||
type DeclarationWithTypeParameters = SignatureDeclaration | ClassLikeDeclaration | InterfaceDeclaration | TypeAliasDeclaration;
|
||||
interface ClassLikeDeclaration extends Declaration {
|
||||
interface ClassLikeDeclaration extends NamedDeclaration {
|
||||
name?: Identifier;
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
heritageClauses?: NodeArray<HeritageClause>;
|
||||
@@ -1210,11 +1212,11 @@ declare namespace ts {
|
||||
interface ClassExpression extends ClassLikeDeclaration, PrimaryExpression {
|
||||
kind: SyntaxKind.ClassExpression;
|
||||
}
|
||||
interface ClassElement extends Declaration {
|
||||
interface ClassElement extends NamedDeclaration {
|
||||
_classElementBrand: any;
|
||||
name?: PropertyName;
|
||||
}
|
||||
interface TypeElement extends Declaration {
|
||||
interface TypeElement extends NamedDeclaration {
|
||||
_typeElementBrand: any;
|
||||
name?: PropertyName;
|
||||
questionToken?: QuestionToken;
|
||||
@@ -1238,7 +1240,7 @@ declare namespace ts {
|
||||
typeParameters?: NodeArray<TypeParameterDeclaration>;
|
||||
type: TypeNode;
|
||||
}
|
||||
interface EnumMember extends Declaration {
|
||||
interface EnumMember extends NamedDeclaration {
|
||||
kind: SyntaxKind.EnumMember;
|
||||
parent?: EnumDeclaration;
|
||||
name: PropertyName;
|
||||
@@ -1297,13 +1299,13 @@ declare namespace ts {
|
||||
moduleSpecifier: Expression;
|
||||
}
|
||||
type NamedImportBindings = NamespaceImport | NamedImports;
|
||||
interface ImportClause extends Declaration {
|
||||
interface ImportClause extends NamedDeclaration {
|
||||
kind: SyntaxKind.ImportClause;
|
||||
parent?: ImportDeclaration;
|
||||
name?: Identifier;
|
||||
namedBindings?: NamedImportBindings;
|
||||
}
|
||||
interface NamespaceImport extends Declaration {
|
||||
interface NamespaceImport extends NamedDeclaration {
|
||||
kind: SyntaxKind.NamespaceImport;
|
||||
parent?: ImportClause;
|
||||
name: Identifier;
|
||||
@@ -1330,13 +1332,13 @@ declare namespace ts {
|
||||
elements: NodeArray<ExportSpecifier>;
|
||||
}
|
||||
type NamedImportsOrExports = NamedImports | NamedExports;
|
||||
interface ImportSpecifier extends Declaration {
|
||||
interface ImportSpecifier extends NamedDeclaration {
|
||||
kind: SyntaxKind.ImportSpecifier;
|
||||
parent?: NamedImports;
|
||||
propertyName?: Identifier;
|
||||
name: Identifier;
|
||||
}
|
||||
interface ExportSpecifier extends Declaration {
|
||||
interface ExportSpecifier extends NamedDeclaration {
|
||||
kind: SyntaxKind.ExportSpecifier;
|
||||
parent?: NamedExports;
|
||||
propertyName?: Identifier;
|
||||
@@ -1467,7 +1469,7 @@ declare namespace ts {
|
||||
kind: SyntaxKind.JSDocTypeTag;
|
||||
typeExpression: JSDocTypeExpression;
|
||||
}
|
||||
interface JSDocTypedefTag extends JSDocTag, Declaration {
|
||||
interface JSDocTypedefTag extends JSDocTag, NamedDeclaration {
|
||||
kind: SyntaxKind.JSDocTypedefTag;
|
||||
fullName?: JSDocNamespaceDeclaration | Identifier;
|
||||
name?: Identifier;
|
||||
|
||||
+214
-131
@@ -8249,6 +8249,36 @@ var ts;
|
||||
return false;
|
||||
}
|
||||
ts.isDeclarationName = isDeclarationName;
|
||||
function getNameOfDeclaration(declaration) {
|
||||
if (!declaration) {
|
||||
return undefined;
|
||||
}
|
||||
if (declaration.kind === 194 /* BinaryExpression */) {
|
||||
var kind = getSpecialPropertyAssignmentKind(declaration);
|
||||
var lhs = declaration.left;
|
||||
switch (kind) {
|
||||
case 0 /* None */:
|
||||
case 2 /* ModuleExports */:
|
||||
return undefined;
|
||||
case 1 /* ExportsProperty */:
|
||||
if (lhs.kind === 71 /* Identifier */) {
|
||||
return lhs.name;
|
||||
}
|
||||
else {
|
||||
return lhs.expression.name;
|
||||
}
|
||||
case 4 /* ThisProperty */:
|
||||
case 5 /* Property */:
|
||||
return lhs.name;
|
||||
case 3 /* PrototypeProperty */:
|
||||
return lhs.expression.name;
|
||||
}
|
||||
}
|
||||
else {
|
||||
return declaration.name;
|
||||
}
|
||||
}
|
||||
ts.getNameOfDeclaration = getNameOfDeclaration;
|
||||
function isLiteralComputedPropertyDeclarationName(node) {
|
||||
return (node.kind === 9 /* StringLiteral */ || node.kind === 8 /* NumericLiteral */) &&
|
||||
node.parent.kind === 144 /* ComputedPropertyName */ &&
|
||||
@@ -8462,7 +8492,8 @@ var ts;
|
||||
* Symbol.
|
||||
*/
|
||||
function hasDynamicName(declaration) {
|
||||
return declaration.name && isDynamicName(declaration.name);
|
||||
var name = getNameOfDeclaration(declaration);
|
||||
return name && isDynamicName(name);
|
||||
}
|
||||
ts.hasDynamicName = hasDynamicName;
|
||||
function isDynamicName(name) {
|
||||
@@ -13679,9 +13710,10 @@ var ts;
|
||||
}
|
||||
ts.getDeclarationName = getDeclarationName;
|
||||
function getName(node, allowComments, allowSourceMaps, emitFlags) {
|
||||
if (node.name && ts.isIdentifier(node.name) && !ts.isGeneratedIdentifier(node.name)) {
|
||||
var name = ts.getMutableClone(node.name);
|
||||
emitFlags |= ts.getEmitFlags(node.name);
|
||||
var nodeName = ts.getNameOfDeclaration(node);
|
||||
if (nodeName && ts.isIdentifier(nodeName) && !ts.isGeneratedIdentifier(nodeName)) {
|
||||
var name = ts.getMutableClone(nodeName);
|
||||
emitFlags |= ts.getEmitFlags(nodeName);
|
||||
if (!allowSourceMaps)
|
||||
emitFlags |= 48 /* NoSourceMap */;
|
||||
if (!allowComments)
|
||||
@@ -21510,12 +21542,13 @@ var ts;
|
||||
// Should not be called on a declaration with a computed property name,
|
||||
// unless it is a well known Symbol.
|
||||
function getDeclarationName(node) {
|
||||
if (node.name) {
|
||||
var name = ts.getNameOfDeclaration(node);
|
||||
if (name) {
|
||||
if (ts.isAmbientModule(node)) {
|
||||
return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + node.name.text + "\"";
|
||||
return ts.isGlobalScopeAugmentation(node) ? "__global" : "\"" + name.text + "\"";
|
||||
}
|
||||
if (node.name.kind === 144 /* ComputedPropertyName */) {
|
||||
var nameExpression = node.name.expression;
|
||||
if (name.kind === 144 /* ComputedPropertyName */) {
|
||||
var nameExpression = name.expression;
|
||||
// treat computed property names where expression is string/numeric literal as just string/numeric literal
|
||||
if (ts.isStringOrNumericLiteral(nameExpression)) {
|
||||
return nameExpression.text;
|
||||
@@ -21523,7 +21556,7 @@ var ts;
|
||||
ts.Debug.assert(ts.isWellKnownSymbolSyntactically(nameExpression));
|
||||
return ts.getPropertyNameForKnownSymbolName(nameExpression.name.text);
|
||||
}
|
||||
return node.name.text;
|
||||
return name.text;
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 152 /* Constructor */:
|
||||
@@ -21667,9 +21700,9 @@ var ts;
|
||||
}
|
||||
}
|
||||
ts.forEach(symbol.declarations, function (declaration) {
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(declaration.name || declaration, message_1, getDisplayName(declaration)));
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(ts.getNameOfDeclaration(declaration) || declaration, message_1, getDisplayName(declaration)));
|
||||
});
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(node.name || node, message_1, getDisplayName(node)));
|
||||
file.bindDiagnostics.push(ts.createDiagnosticForNode(ts.getNameOfDeclaration(node) || node, message_1, getDisplayName(node)));
|
||||
symbol = createSymbol(0 /* None */, name);
|
||||
}
|
||||
}
|
||||
@@ -25965,16 +25998,16 @@ var ts;
|
||||
recordMergedSymbol(target, source);
|
||||
}
|
||||
else if (target.flags & 1024 /* NamespaceModule */) {
|
||||
error(source.declarations[0].name, ts.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, symbolToString(target));
|
||||
error(ts.getNameOfDeclaration(source.declarations[0]), ts.Diagnostics.Cannot_augment_module_0_with_value_exports_because_it_resolves_to_a_non_module_entity, symbolToString(target));
|
||||
}
|
||||
else {
|
||||
var message_2 = target.flags & 2 /* BlockScopedVariable */ || source.flags & 2 /* BlockScopedVariable */
|
||||
? ts.Diagnostics.Cannot_redeclare_block_scoped_variable_0 : ts.Diagnostics.Duplicate_identifier_0;
|
||||
ts.forEach(source.declarations, function (node) {
|
||||
error(node.name ? node.name : node, message_2, symbolToString(source));
|
||||
error(ts.getNameOfDeclaration(node) || node, message_2, symbolToString(source));
|
||||
});
|
||||
ts.forEach(target.declarations, function (node) {
|
||||
error(node.name ? node.name : node, message_2, symbolToString(source));
|
||||
error(ts.getNameOfDeclaration(node) || node, message_2, symbolToString(source));
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -26102,7 +26135,8 @@ var ts;
|
||||
var useFile = ts.getSourceFileOfNode(usage);
|
||||
if (declarationFile !== useFile) {
|
||||
if ((modulekind && (declarationFile.externalModuleIndicator || useFile.externalModuleIndicator)) ||
|
||||
(!compilerOptions.outFile && !compilerOptions.out)) {
|
||||
(!compilerOptions.outFile && !compilerOptions.out) ||
|
||||
ts.isInAmbientContext(declaration)) {
|
||||
// nodes are in different files and order cannot be determined
|
||||
return true;
|
||||
}
|
||||
@@ -26566,13 +26600,13 @@ var ts;
|
||||
ts.Debug.assert(declaration !== undefined, "Declaration to checkResolvedBlockScopedVariable is undefined");
|
||||
if (!ts.isInAmbientContext(declaration) && !isBlockScopedNameDeclaredBeforeUse(declaration, errorLocation)) {
|
||||
if (result.flags & 2 /* BlockScopedVariable */) {
|
||||
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Block_scoped_variable_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
else if (result.flags & 32 /* Class */) {
|
||||
error(errorLocation, ts.Diagnostics.Class_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Class_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
else if (result.flags & 384 /* Enum */) {
|
||||
error(errorLocation, ts.Diagnostics.Enum_0_used_before_its_declaration, ts.declarationNameToString(declaration.name));
|
||||
error(errorLocation, ts.Diagnostics.Enum_0_used_before_its_declaration, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -27948,8 +27982,9 @@ var ts;
|
||||
function getNameOfSymbol(symbol) {
|
||||
var declaration = ts.firstOrUndefined(symbol.declarations);
|
||||
if (declaration) {
|
||||
if (declaration.name) {
|
||||
return ts.declarationNameToString(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
return ts.declarationNameToString(name);
|
||||
}
|
||||
if (declaration.parent && declaration.parent.kind === 226 /* VariableDeclaration */) {
|
||||
return ts.declarationNameToString(declaration.parent.name);
|
||||
@@ -28030,8 +28065,9 @@ var ts;
|
||||
function getNameOfSymbol(symbol) {
|
||||
if (symbol.declarations && symbol.declarations.length) {
|
||||
var declaration = symbol.declarations[0];
|
||||
if (declaration.name) {
|
||||
return ts.declarationNameToString(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
return ts.declarationNameToString(name);
|
||||
}
|
||||
if (declaration.parent && declaration.parent.kind === 226 /* VariableDeclaration */) {
|
||||
return ts.declarationNameToString(declaration.parent.name);
|
||||
@@ -31222,8 +31258,9 @@ var ts;
|
||||
type = anyType;
|
||||
if (noImplicitAny) {
|
||||
var declaration = signature.declaration;
|
||||
if (declaration.name) {
|
||||
error(declaration.name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(declaration.name));
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
error(name, ts.Diagnostics._0_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions, ts.declarationNameToString(name));
|
||||
}
|
||||
else {
|
||||
error(declaration, ts.Diagnostics.Function_implicitly_has_return_type_any_because_it_does_not_have_a_return_type_annotation_and_is_referenced_directly_or_indirectly_in_one_of_its_return_expressions);
|
||||
@@ -33350,29 +33387,6 @@ var ts;
|
||||
}
|
||||
return 0 /* False */;
|
||||
}
|
||||
// Check if a property with the given name is known anywhere in the given type. In an object type, a property
|
||||
// is considered known if the object type is empty and the check is for assignability, if the object type has
|
||||
// index signatures, or if the property is actually declared in the object type. In a union or intersection
|
||||
// type, a property is considered known if it is known in any constituent type.
|
||||
function isKnownProperty(type, name, isComparingJsxAttributes) {
|
||||
if (type.flags & 32768 /* Object */) {
|
||||
var resolved = resolveStructuredTypeMembers(type);
|
||||
if (resolved.stringIndexInfo || resolved.numberIndexInfo && isNumericLiteralName(name) ||
|
||||
getPropertyOfType(type, name) || isComparingJsxAttributes && !isUnhyphenatedJsxName(name)) {
|
||||
// For JSXAttributes, if the attribute has a hyphenated name, consider that the attribute to be known.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (type.flags & 196608 /* UnionOrIntersection */) {
|
||||
for (var _i = 0, _a = type.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
if (isKnownProperty(t, name, isComparingJsxAttributes)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
function hasExcessProperties(source, target, reportErrors) {
|
||||
if (maybeTypeOfKind(target, 32768 /* Object */) && !(getObjectFlags(target) & 512 /* ObjectLiteralPatternWithComputedProperties */)) {
|
||||
var isComparingJsxAttributes = !!(source.flags & 33554432 /* JsxAttributes */);
|
||||
@@ -34523,7 +34537,7 @@ var ts;
|
||||
default:
|
||||
diagnostic = ts.Diagnostics.Variable_0_implicitly_has_an_1_type;
|
||||
}
|
||||
error(declaration, diagnostic, ts.declarationNameToString(declaration.name), typeAsString);
|
||||
error(declaration, diagnostic, ts.declarationNameToString(ts.getNameOfDeclaration(declaration)), typeAsString);
|
||||
}
|
||||
function reportErrorsFromWidening(declaration, type) {
|
||||
if (produceDiagnostics && noImplicitAny && type.flags & 2097152 /* ContainsWideningType */) {
|
||||
@@ -36303,7 +36317,7 @@ var ts;
|
||||
if (type === autoType || type === autoArrayType) {
|
||||
if (flowType === autoType || flowType === autoArrayType) {
|
||||
if (noImplicitAny) {
|
||||
error(declaration.name, ts.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));
|
||||
error(ts.getNameOfDeclaration(declaration), ts.Diagnostics.Variable_0_implicitly_has_type_1_in_some_locations_where_its_type_cannot_be_determined, symbolToString(symbol), typeToString(flowType));
|
||||
error(node, ts.Diagnostics.Variable_0_implicitly_has_an_1_type, symbolToString(symbol), typeToString(flowType));
|
||||
}
|
||||
return convertAutoToAny(flowType);
|
||||
@@ -37581,6 +37595,8 @@ var ts;
|
||||
var spread = emptyObjectType;
|
||||
var attributesArray = [];
|
||||
var hasSpreadAnyType = false;
|
||||
var explicitlySpecifyChildrenAttribute = false;
|
||||
var jsxChildrenPropertyName = getJsxElementChildrenPropertyname();
|
||||
for (var _i = 0, _a = attributes.properties; _i < _a.length; _i++) {
|
||||
var attributeDecl = _a[_i];
|
||||
var member = attributeDecl.symbol;
|
||||
@@ -37598,6 +37614,9 @@ var ts;
|
||||
attributeSymbol.target = member;
|
||||
attributesTable.set(attributeSymbol.name, attributeSymbol);
|
||||
attributesArray.push(attributeSymbol);
|
||||
if (attributeDecl.name.text === jsxChildrenPropertyName) {
|
||||
explicitlySpecifyChildrenAttribute = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
ts.Debug.assert(attributeDecl.kind === 255 /* JsxSpreadAttribute */);
|
||||
@@ -37606,11 +37625,7 @@ var ts;
|
||||
attributesArray = [];
|
||||
attributesTable = ts.createMap();
|
||||
}
|
||||
var exprType = checkExpression(attributeDecl.expression);
|
||||
if (!isValidSpreadType(exprType)) {
|
||||
error(attributeDecl, ts.Diagnostics.Spread_types_may_only_be_created_from_object_types);
|
||||
hasSpreadAnyType = true;
|
||||
}
|
||||
var exprType = getApparentType(checkExpression(attributeDecl.expression));
|
||||
if (isTypeAny(exprType)) {
|
||||
hasSpreadAnyType = true;
|
||||
}
|
||||
@@ -37653,11 +37668,11 @@ var ts;
|
||||
childrenTypes.push(checkExpression(child, checkMode));
|
||||
}
|
||||
}
|
||||
// Error if there is a attribute named "children" and children element.
|
||||
// This is because children element will overwrite the value from attributes
|
||||
var jsxChildrenPropertyName = getJsxElementChildrenPropertyname();
|
||||
if (!hasSpreadAnyType && jsxChildrenPropertyName && jsxChildrenPropertyName !== "") {
|
||||
if (attributesTable.has(jsxChildrenPropertyName)) {
|
||||
// Error if there is a attribute named "children" explicitly specified and children element.
|
||||
// This is because children element will overwrite the value from attributes.
|
||||
// Note: we will not warn "children" attribute overwritten if "children" attribute is specified in object spread.
|
||||
if (explicitlySpecifyChildrenAttribute) {
|
||||
error(attributes, ts.Diagnostics._0_are_specified_twice_The_attribute_named_0_will_be_overwritten, jsxChildrenPropertyName);
|
||||
}
|
||||
// If there are children in the body of JSX element, create dummy attribute "children" with anyType so that it will pass the attribute checking process
|
||||
@@ -37676,8 +37691,7 @@ var ts;
|
||||
*/
|
||||
function createJsxAttributesType(symbol, attributesTable) {
|
||||
var result = createAnonymousType(symbol, attributesTable, emptyArray, emptyArray, /*stringIndexInfo*/ undefined, /*numberIndexInfo*/ undefined);
|
||||
var freshObjectLiteralFlag = compilerOptions.suppressExcessPropertyErrors ? 0 : 1048576 /* FreshLiteral */;
|
||||
result.flags |= 33554432 /* JsxAttributes */ | 4194304 /* ContainsObjectLiteral */ | freshObjectLiteralFlag;
|
||||
result.flags |= 33554432 /* JsxAttributes */ | 4194304 /* ContainsObjectLiteral */;
|
||||
result.objectFlags |= 128 /* ObjectLiteral */;
|
||||
return result;
|
||||
}
|
||||
@@ -37818,6 +37832,20 @@ var ts;
|
||||
}
|
||||
return _jsxElementChildrenPropertyName;
|
||||
}
|
||||
function getApparentTypeOfJsxPropsType(propsType) {
|
||||
if (!propsType) {
|
||||
return undefined;
|
||||
}
|
||||
if (propsType.flags & 131072 /* Intersection */) {
|
||||
var propsApparentType = [];
|
||||
for (var _i = 0, _a = propsType.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
propsApparentType.push(getApparentType(t));
|
||||
}
|
||||
return getIntersectionType(propsApparentType);
|
||||
}
|
||||
return getApparentType(propsType);
|
||||
}
|
||||
/**
|
||||
* Get JSX attributes type by trying to resolve openingLikeElement as a stateless function component.
|
||||
* Return only attributes type of successfully resolved call signature.
|
||||
@@ -37838,6 +37866,7 @@ var ts;
|
||||
if (callSignature !== unknownSignature) {
|
||||
var callReturnType = callSignature && getReturnTypeOfSignature(callSignature);
|
||||
var paramType = callReturnType && (callSignature.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(callSignature.parameters[0]));
|
||||
paramType = getApparentTypeOfJsxPropsType(paramType);
|
||||
if (callReturnType && isTypeAssignableTo(callReturnType, jsxStatelessElementType)) {
|
||||
// Intersect in JSX.IntrinsicAttributes if it exists
|
||||
var intrinsicAttributes = getJsxType(JsxNames.IntrinsicAttributes);
|
||||
@@ -37876,6 +37905,7 @@ var ts;
|
||||
var candidate = candidatesOutArray_1[_i];
|
||||
var callReturnType = getReturnTypeOfSignature(candidate);
|
||||
var paramType = callReturnType && (candidate.parameters.length === 0 ? emptyObjectType : getTypeOfSymbol(candidate.parameters[0]));
|
||||
paramType = getApparentTypeOfJsxPropsType(paramType);
|
||||
if (callReturnType && isTypeAssignableTo(callReturnType, jsxStatelessElementType)) {
|
||||
var shouldBeCandidate = true;
|
||||
for (var _a = 0, _b = openingLikeElement.attributes.properties; _a < _b.length; _a++) {
|
||||
@@ -38150,6 +38180,34 @@ var ts;
|
||||
}
|
||||
checkJsxAttributesAssignableToTagNameAttributes(node);
|
||||
}
|
||||
/**
|
||||
* Check if a property with the given name is known anywhere in the given type. In an object type, a property
|
||||
* is considered known if the object type is empty and the check is for assignability, if the object type has
|
||||
* index signatures, or if the property is actually declared in the object type. In a union or intersection
|
||||
* type, a property is considered known if it is known in any constituent type.
|
||||
* @param targetType a type to search a given name in
|
||||
* @param name a property name to search
|
||||
* @param isComparingJsxAttributes a boolean flag indicating whether we are searching in JsxAttributesType
|
||||
*/
|
||||
function isKnownProperty(targetType, name, isComparingJsxAttributes) {
|
||||
if (targetType.flags & 32768 /* Object */) {
|
||||
var resolved = resolveStructuredTypeMembers(targetType);
|
||||
if (resolved.stringIndexInfo || resolved.numberIndexInfo && isNumericLiteralName(name) ||
|
||||
getPropertyOfType(targetType, name) || isComparingJsxAttributes && !isUnhyphenatedJsxName(name)) {
|
||||
// For JSXAttributes, if the attribute has a hyphenated name, consider that the attribute to be known.
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else if (targetType.flags & 196608 /* UnionOrIntersection */) {
|
||||
for (var _i = 0, _a = targetType.types; _i < _a.length; _i++) {
|
||||
var t = _a[_i];
|
||||
if (isKnownProperty(t, name, isComparingJsxAttributes)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Check whether the given attributes of JSX opening-like element is assignable to the tagName attributes.
|
||||
* Get the attributes type of the opening-like element through resolving the tagName, "target attributes"
|
||||
@@ -38178,7 +38236,20 @@ var ts;
|
||||
error(openingLikeElement, ts.Diagnostics.JSX_element_class_does_not_support_attributes_because_it_does_not_have_a_0_property, getJsxElementPropertiesName());
|
||||
}
|
||||
else {
|
||||
checkTypeAssignableTo(sourceAttributesType, targetAttributesType, openingLikeElement.attributes.properties.length > 0 ? openingLikeElement.attributes : openingLikeElement);
|
||||
// Check if sourceAttributesType assignable to targetAttributesType though this check will allow excess properties
|
||||
var isSourceAttributeTypeAssignableToTarget = checkTypeAssignableTo(sourceAttributesType, targetAttributesType, openingLikeElement.attributes.properties.length > 0 ? openingLikeElement.attributes : openingLikeElement);
|
||||
// After we check for assignability, we will do another pass to check that all explicitly specified attributes have correct name corresponding in targetAttributeType.
|
||||
// This will allow excess properties in spread type as it is very common pattern to spread outter attributes into React component in its render method.
|
||||
if (isSourceAttributeTypeAssignableToTarget && !isTypeAny(sourceAttributesType) && !isTypeAny(targetAttributesType)) {
|
||||
for (var _i = 0, _a = openingLikeElement.attributes.properties; _i < _a.length; _i++) {
|
||||
var attribute = _a[_i];
|
||||
if (ts.isJsxAttribute(attribute) && !isKnownProperty(targetAttributesType, attribute.name.text, /*isComparingJsxAttributes*/ true)) {
|
||||
error(attribute, ts.Diagnostics.Property_0_does_not_exist_on_type_1, attribute.name.text, typeToString(targetAttributesType));
|
||||
// We break here so that errors won't be cascading
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
function checkJsxExpression(node, checkMode) {
|
||||
@@ -39507,7 +39578,7 @@ var ts;
|
||||
// only the class declaration node will have the Abstract flag set.
|
||||
var valueDecl = expressionType.symbol && getClassLikeDeclarationOfSymbol(expressionType.symbol);
|
||||
if (valueDecl && ts.getModifierFlags(valueDecl) & 128 /* Abstract */) {
|
||||
error(node, ts.Diagnostics.Cannot_create_an_instance_of_the_abstract_class_0, ts.declarationNameToString(valueDecl.name));
|
||||
error(node, ts.Diagnostics.Cannot_create_an_instance_of_the_abstract_class_0, ts.declarationNameToString(ts.getNameOfDeclaration(valueDecl)));
|
||||
return resolveErrorCall(node);
|
||||
}
|
||||
// TS 1.0 spec: 4.11
|
||||
@@ -39918,11 +39989,11 @@ var ts;
|
||||
var links = getSymbolLinks(parameter);
|
||||
if (!links.type) {
|
||||
links.type = instantiateType(contextualType, mapper);
|
||||
var name = ts.getNameOfDeclaration(parameter.valueDeclaration);
|
||||
// if inference didn't come up with anything but {}, fall back to the binding pattern if present.
|
||||
if (links.type === emptyObjectType &&
|
||||
(parameter.valueDeclaration.name.kind === 174 /* ObjectBindingPattern */ ||
|
||||
parameter.valueDeclaration.name.kind === 175 /* ArrayBindingPattern */)) {
|
||||
links.type = getTypeFromBindingPattern(parameter.valueDeclaration.name);
|
||||
(name.kind === 174 /* ObjectBindingPattern */ || name.kind === 175 /* ArrayBindingPattern */)) {
|
||||
links.type = getTypeFromBindingPattern(name);
|
||||
}
|
||||
assignBindingElementTypes(parameter.valueDeclaration);
|
||||
}
|
||||
@@ -41597,7 +41668,7 @@ var ts;
|
||||
continue;
|
||||
}
|
||||
if (names.get(memberName)) {
|
||||
error(member.symbol.valueDeclaration.name, ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
error(ts.getNameOfDeclaration(member.symbol.valueDeclaration), ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
error(member.name, ts.Diagnostics.Duplicate_identifier_0, memberName);
|
||||
}
|
||||
else {
|
||||
@@ -41685,7 +41756,8 @@ var ts;
|
||||
return;
|
||||
}
|
||||
function containsSuperCallAsComputedPropertyName(n) {
|
||||
return n.name && containsSuperCall(n.name);
|
||||
var name = ts.getNameOfDeclaration(n);
|
||||
return name && containsSuperCall(name);
|
||||
}
|
||||
function containsSuperCall(n) {
|
||||
if (ts.isSuperCall(n)) {
|
||||
@@ -41945,16 +42017,16 @@ var ts;
|
||||
ts.forEach(overloads, function (o) {
|
||||
var deviation = getEffectiveDeclarationFlags(o, flagsToCheck) ^ canonicalFlags_1;
|
||||
if (deviation & 1 /* Export */) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_exported_or_non_exported);
|
||||
}
|
||||
else if (deviation & 2 /* Ambient */) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient);
|
||||
}
|
||||
else if (deviation & (8 /* Private */ | 16 /* Protected */)) {
|
||||
error(o.name || o, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);
|
||||
error(ts.getNameOfDeclaration(o) || o, ts.Diagnostics.Overload_signatures_must_all_be_public_private_or_protected);
|
||||
}
|
||||
else if (deviation & 128 /* Abstract */) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -41965,7 +42037,7 @@ var ts;
|
||||
ts.forEach(overloads, function (o) {
|
||||
var deviation = ts.hasQuestionToken(o) !== canonicalHasQuestionToken_1;
|
||||
if (deviation) {
|
||||
error(o.name, ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required);
|
||||
error(ts.getNameOfDeclaration(o), ts.Diagnostics.Overload_signatures_must_all_be_optional_or_required);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -42089,7 +42161,7 @@ var ts;
|
||||
}
|
||||
if (duplicateFunctionDeclaration) {
|
||||
ts.forEach(declarations, function (declaration) {
|
||||
error(declaration.name, ts.Diagnostics.Duplicate_function_implementation);
|
||||
error(ts.getNameOfDeclaration(declaration), ts.Diagnostics.Duplicate_function_implementation);
|
||||
});
|
||||
}
|
||||
// Abstract methods can't have an implementation -- in particular, they don't need one.
|
||||
@@ -42162,12 +42234,13 @@ var ts;
|
||||
for (var _b = 0, _c = symbol.declarations; _b < _c.length; _b++) {
|
||||
var d = _c[_b];
|
||||
var declarationSpaces = getDeclarationSpaces(d);
|
||||
var name = ts.getNameOfDeclaration(d);
|
||||
// Only error on the declarations that contributed to the intersecting spaces.
|
||||
if (declarationSpaces & commonDeclarationSpacesForDefaultAndNonDefault) {
|
||||
error(d.name, ts.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, ts.declarationNameToString(d.name));
|
||||
error(name, ts.Diagnostics.Merged_declaration_0_cannot_include_a_default_export_declaration_Consider_adding_a_separate_export_default_0_declaration_instead, ts.declarationNameToString(name));
|
||||
}
|
||||
else if (declarationSpaces & commonDeclarationSpacesForExportsAndLocals) {
|
||||
error(d.name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(d.name));
|
||||
error(name, ts.Diagnostics.Individual_declarations_in_merged_declaration_0_must_be_all_exported_or_all_local, ts.declarationNameToString(name));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -42673,15 +42746,16 @@ var ts;
|
||||
if (!local.isReferenced) {
|
||||
if (local.valueDeclaration && ts.getRootDeclaration(local.valueDeclaration).kind === 146 /* Parameter */) {
|
||||
var parameter = ts.getRootDeclaration(local.valueDeclaration);
|
||||
var name = ts.getNameOfDeclaration(local.valueDeclaration);
|
||||
if (compilerOptions.noUnusedParameters &&
|
||||
!ts.isParameterPropertyDeclaration(parameter) &&
|
||||
!ts.parameterIsThisKeyword(parameter) &&
|
||||
!parameterNameStartsWithUnderscore(local.valueDeclaration.name)) {
|
||||
error(local.valueDeclaration.name, ts.Diagnostics._0_is_declared_but_never_used, local.name);
|
||||
!parameterNameStartsWithUnderscore(name)) {
|
||||
error(name, ts.Diagnostics._0_is_declared_but_never_used, local.name);
|
||||
}
|
||||
}
|
||||
else if (compilerOptions.noUnusedLocals) {
|
||||
ts.forEach(local.declarations, function (d) { return errorUnusedLocal(d.name || d, local.name); });
|
||||
ts.forEach(local.declarations, function (d) { return errorUnusedLocal(ts.getNameOfDeclaration(d) || d, local.name); });
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -42761,7 +42835,7 @@ var ts;
|
||||
for (var _i = 0, _a = local.declarations; _i < _a.length; _i++) {
|
||||
var declaration = _a[_i];
|
||||
if (!ts.isAmbientModule(declaration)) {
|
||||
errorUnusedLocal(declaration.name, local.name);
|
||||
errorUnusedLocal(ts.getNameOfDeclaration(declaration), local.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -42829,7 +42903,7 @@ var ts;
|
||||
if (getNodeCheckFlags(current) & 4 /* CaptureThis */) {
|
||||
var isDeclaration_1 = node.kind !== 71 /* Identifier */;
|
||||
if (isDeclaration_1) {
|
||||
error(node.name, ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);
|
||||
error(ts.getNameOfDeclaration(node), ts.Diagnostics.Duplicate_identifier_this_Compiler_uses_variable_declaration_this_to_capture_this_reference);
|
||||
}
|
||||
else {
|
||||
error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_this_that_compiler_uses_to_capture_this_reference);
|
||||
@@ -42843,7 +42917,7 @@ var ts;
|
||||
if (getNodeCheckFlags(current) & 8 /* CaptureNewTarget */) {
|
||||
var isDeclaration_2 = node.kind !== 71 /* Identifier */;
|
||||
if (isDeclaration_2) {
|
||||
error(node.name, ts.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);
|
||||
error(ts.getNameOfDeclaration(node), ts.Diagnostics.Duplicate_identifier_newTarget_Compiler_uses_variable_declaration_newTarget_to_capture_new_target_meta_property_reference);
|
||||
}
|
||||
else {
|
||||
error(node, ts.Diagnostics.Expression_resolves_to_variable_declaration_newTarget_that_compiler_uses_to_capture_new_target_meta_property_reference);
|
||||
@@ -43109,7 +43183,7 @@ var ts;
|
||||
checkTypeAssignableTo(checkExpressionCached(node.initializer), declarationType, node, /*headMessage*/ undefined);
|
||||
}
|
||||
if (!areDeclarationFlagsIdentical(node, symbol.valueDeclaration)) {
|
||||
error(symbol.valueDeclaration.name, ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
error(ts.getNameOfDeclaration(symbol.valueDeclaration), ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
error(node.name, ts.Diagnostics.All_declarations_of_0_must_have_identical_modifiers, ts.declarationNameToString(node.name));
|
||||
}
|
||||
}
|
||||
@@ -43836,15 +43910,15 @@ var ts;
|
||||
}
|
||||
var propDeclaration = prop.valueDeclaration;
|
||||
// index is numeric and property name is not valid numeric literal
|
||||
if (indexKind === 1 /* Number */ && !(propDeclaration ? isNumericName(propDeclaration.name) : isNumericLiteralName(prop.name))) {
|
||||
if (indexKind === 1 /* Number */ && !(propDeclaration ? isNumericName(ts.getNameOfDeclaration(propDeclaration)) : isNumericLiteralName(prop.name))) {
|
||||
return;
|
||||
}
|
||||
// perform property check if property or indexer is declared in 'type'
|
||||
// this allows to rule out cases when both property and indexer are inherited from the base class
|
||||
// this allows us to rule out cases when both property and indexer are inherited from the base class
|
||||
var errorNode;
|
||||
if (propDeclaration &&
|
||||
(ts.getSpecialPropertyAssignmentKind(propDeclaration) === 4 /* ThisProperty */ ||
|
||||
propDeclaration.name.kind === 144 /* ComputedPropertyName */ ||
|
||||
(propDeclaration.kind === 194 /* BinaryExpression */ ||
|
||||
ts.getNameOfDeclaration(propDeclaration).kind === 144 /* ComputedPropertyName */ ||
|
||||
prop.parent === containingType.symbol)) {
|
||||
errorNode = propDeclaration;
|
||||
}
|
||||
@@ -44168,7 +44242,7 @@ var ts;
|
||||
else {
|
||||
errorMessage = ts.Diagnostics.Class_0_defines_instance_member_accessor_1_but_extended_class_2_defines_it_as_instance_member_function;
|
||||
}
|
||||
error(derived.valueDeclaration.name || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
||||
error(ts.getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -44463,7 +44537,7 @@ var ts;
|
||||
// check that const is placed\omitted on all enum declarations
|
||||
ts.forEach(enumSymbol.declarations, function (decl) {
|
||||
if (ts.isConstEnumDeclaration(decl) !== enumIsConst) {
|
||||
error(decl.name, ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const);
|
||||
error(ts.getNameOfDeclaration(decl), ts.Diagnostics.Enum_declarations_must_all_be_const_or_non_const);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -55839,7 +55913,7 @@ var ts;
|
||||
if (enabledSubstitutions & 2 /* BlockScopedBindings */ && !ts.isInternalName(node)) {
|
||||
var declaration = resolver.getReferencedDeclarationWithCollidingName(node);
|
||||
if (declaration && !(ts.isClassLike(declaration) && isPartOfClassBody(declaration, node))) {
|
||||
return ts.setTextRange(ts.getGeneratedNameForNode(declaration.name), node);
|
||||
return ts.setTextRange(ts.getGeneratedNameForNode(ts.getNameOfDeclaration(declaration)), node);
|
||||
}
|
||||
}
|
||||
return node;
|
||||
@@ -62374,7 +62448,7 @@ var ts;
|
||||
var errorNameNode;
|
||||
var emitJsDocComments = compilerOptions.removeComments ? ts.noop : writeJsDocComments;
|
||||
var emit = compilerOptions.stripInternal ? stripInternal : emitNode;
|
||||
var noDeclare;
|
||||
var needsDeclare = true;
|
||||
var moduleElementDeclarationEmitInfo = [];
|
||||
var asynchronousSubModuleDeclarationEmitInfo;
|
||||
// Contains the reference paths that needs to go in the declaration file.
|
||||
@@ -62410,11 +62484,11 @@ var ts;
|
||||
}
|
||||
resultHasExternalModuleIndicator = false;
|
||||
if (!isBundledEmit || !ts.isExternalModule(sourceFile)) {
|
||||
noDeclare = false;
|
||||
needsDeclare = true;
|
||||
emitSourceFile(sourceFile);
|
||||
}
|
||||
else if (ts.isExternalModule(sourceFile)) {
|
||||
noDeclare = true;
|
||||
needsDeclare = false;
|
||||
write("declare module \"" + ts.getResolvedExternalModuleName(host, sourceFile) + "\" {");
|
||||
writeLine();
|
||||
increaseIndent();
|
||||
@@ -62858,9 +62932,9 @@ var ts;
|
||||
}
|
||||
}
|
||||
}
|
||||
function emitTempVariableDeclaration(expr, baseName, diagnostic) {
|
||||
function emitTempVariableDeclaration(expr, baseName, diagnostic, needsDeclare) {
|
||||
var tempVarName = getExportTempVariableName(baseName);
|
||||
if (!noDeclare) {
|
||||
if (needsDeclare) {
|
||||
write("declare ");
|
||||
}
|
||||
write("const ");
|
||||
@@ -62881,7 +62955,7 @@ var ts;
|
||||
var tempVarName = emitTempVariableDeclaration(node.expression, "_default", {
|
||||
diagnosticMessage: ts.Diagnostics.Default_export_of_the_module_has_or_is_using_private_name_0,
|
||||
errorNode: node
|
||||
});
|
||||
}, needsDeclare);
|
||||
write(node.isExportEquals ? "export = " : "export default ");
|
||||
write(tempVarName);
|
||||
}
|
||||
@@ -62965,7 +63039,7 @@ var ts;
|
||||
if (modifiers & 512 /* Default */) {
|
||||
write("default ");
|
||||
}
|
||||
else if (node.kind !== 230 /* InterfaceDeclaration */ && !noDeclare) {
|
||||
else if (node.kind !== 230 /* InterfaceDeclaration */ && needsDeclare) {
|
||||
write("declare ");
|
||||
}
|
||||
}
|
||||
@@ -63329,7 +63403,7 @@ var ts;
|
||||
return {
|
||||
diagnosticMessage: diagnosticMessage,
|
||||
errorNode: node,
|
||||
typeName: node.parent.parent.name
|
||||
typeName: ts.getNameOfDeclaration(node.parent.parent)
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -63355,7 +63429,7 @@ var ts;
|
||||
diagnosticMessage: ts.Diagnostics.extends_clause_of_exported_class_0_has_or_is_using_private_name_1,
|
||||
errorNode: baseTypeNode,
|
||||
typeName: node.name
|
||||
});
|
||||
}, !ts.findAncestor(node, function (n) { return n.kind === 233 /* ModuleDeclaration */; }));
|
||||
}
|
||||
emitJsDocComments(node);
|
||||
emitModuleElementDeclarationFlags(node);
|
||||
@@ -70251,7 +70325,7 @@ var ts;
|
||||
case 153 /* GetAccessor */:
|
||||
case 154 /* SetAccessor */:
|
||||
case 233 /* ModuleDeclaration */:
|
||||
return node.parent.name === node;
|
||||
return ts.getNameOfDeclaration(node.parent) === node;
|
||||
case 180 /* ElementAccessExpression */:
|
||||
return node.parent.argumentExpression === node;
|
||||
case 144 /* ComputedPropertyName */:
|
||||
@@ -73800,7 +73874,7 @@ var ts;
|
||||
// TODO(jfreeman): Account for computed property name
|
||||
// NOTE: if one only performs this step when m.name is an identifier,
|
||||
// things like '__proto__' are not filtered out.
|
||||
existingName = m.name.text;
|
||||
existingName = ts.getNameOfDeclaration(m).text;
|
||||
}
|
||||
existingMemberNames.set(existingName, true);
|
||||
}
|
||||
@@ -74996,8 +75070,8 @@ var ts;
|
||||
if (symbol.name !== "default") {
|
||||
return symbol.name;
|
||||
}
|
||||
var name = ts.forEach(symbol.declarations, function (_a) {
|
||||
var name = _a.name;
|
||||
var name = ts.forEach(symbol.declarations, function (decl) {
|
||||
var name = ts.getNameOfDeclaration(decl);
|
||||
return name && name.kind === 71 /* Identifier */ && name.text;
|
||||
});
|
||||
ts.Debug.assert(!!name);
|
||||
@@ -75751,7 +75825,7 @@ var ts;
|
||||
* position of property accessing, the referenceEntry of such position will be handled in the first case.
|
||||
*/
|
||||
if (!(flags & 134217728 /* Transient */) && search.includes(shorthandValueSymbol)) {
|
||||
addReference(valueDeclaration.name, shorthandValueSymbol, search.location, state);
|
||||
addReference(ts.getNameOfDeclaration(valueDeclaration), shorthandValueSymbol, search.location, state);
|
||||
}
|
||||
}
|
||||
function addReference(referenceLocation, relatedSymbol, searchLocation, state) {
|
||||
@@ -76676,7 +76750,7 @@ var ts;
|
||||
}
|
||||
/** Creates a DefinitionInfo from a Declaration, using the declaration's name if possible. */
|
||||
function createDefinitionInfo(node, symbolKind, symbolName, containerName) {
|
||||
return createDefinitionInfoFromName(node.name || node, symbolKind, symbolName, containerName);
|
||||
return createDefinitionInfoFromName(ts.getNameOfDeclaration(node) || node, symbolKind, symbolName, containerName);
|
||||
}
|
||||
/** Creates a DefinitionInfo directly from the name of a declaration. */
|
||||
function createDefinitionInfoFromName(name, symbolKind, symbolName, containerName) {
|
||||
@@ -77314,17 +77388,20 @@ var ts;
|
||||
return undefined;
|
||||
}
|
||||
function tryAddSingleDeclarationName(declaration, containers) {
|
||||
if (declaration && declaration.name) {
|
||||
var text = getTextOfIdentifierOrLiteral(declaration.name);
|
||||
if (text !== undefined) {
|
||||
containers.unshift(text);
|
||||
}
|
||||
else if (declaration.name.kind === 144 /* ComputedPropertyName */) {
|
||||
return tryAddComputedPropertyName(declaration.name.expression, containers, /*includeLastPortion*/ true);
|
||||
}
|
||||
else {
|
||||
// Don't know how to add this.
|
||||
return false;
|
||||
if (declaration) {
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
var text = getTextOfIdentifierOrLiteral(name);
|
||||
if (text !== undefined) {
|
||||
containers.unshift(text);
|
||||
}
|
||||
else if (name.kind === 144 /* ComputedPropertyName */) {
|
||||
return tryAddComputedPropertyName(name.expression, containers, /*includeLastPortion*/ true);
|
||||
}
|
||||
else {
|
||||
// Don't know how to add this.
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@@ -77353,8 +77430,9 @@ var ts;
|
||||
var containers = [];
|
||||
// First, if we started with a computed property name, then add all but the last
|
||||
// portion into the container array.
|
||||
if (declaration.name.kind === 144 /* ComputedPropertyName */) {
|
||||
if (!tryAddComputedPropertyName(declaration.name.expression, containers, /*includeLastPortion*/ false)) {
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name.kind === 144 /* ComputedPropertyName */) {
|
||||
if (!tryAddComputedPropertyName(name.expression, containers, /*includeLastPortion*/ false)) {
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
@@ -77392,6 +77470,7 @@ var ts;
|
||||
function createNavigateToItem(rawItem) {
|
||||
var declaration = rawItem.declaration;
|
||||
var container = ts.getContainerNode(declaration);
|
||||
var containerName = container && ts.getNameOfDeclaration(container);
|
||||
return {
|
||||
name: rawItem.name,
|
||||
kind: ts.getNodeKind(declaration),
|
||||
@@ -77401,8 +77480,8 @@ var ts;
|
||||
fileName: rawItem.fileName,
|
||||
textSpan: ts.createTextSpanFromNode(declaration),
|
||||
// TODO(jfreeman): What should be the containerName when the container has a computed name?
|
||||
containerName: container && container.name ? container.name.text : "",
|
||||
containerKind: container && container.name ? ts.getNodeKind(container) : ""
|
||||
containerName: containerName ? containerName.text : "",
|
||||
containerKind: containerName ? ts.getNodeKind(container) : ""
|
||||
};
|
||||
}
|
||||
}
|
||||
@@ -77654,8 +77733,8 @@ var ts;
|
||||
function mergeChildren(children) {
|
||||
var nameToItems = ts.createMap();
|
||||
ts.filterMutate(children, function (child) {
|
||||
var decl = child.node;
|
||||
var name = decl.name && nodeText(decl.name);
|
||||
var declName = ts.getNameOfDeclaration(child.node);
|
||||
var name = declName && nodeText(declName);
|
||||
if (!name) {
|
||||
// Anonymous items are never merged.
|
||||
return true;
|
||||
@@ -77744,9 +77823,9 @@ var ts;
|
||||
if (node.kind === 233 /* ModuleDeclaration */) {
|
||||
return getModuleName(node);
|
||||
}
|
||||
var decl = node;
|
||||
if (decl.name) {
|
||||
return ts.getPropertyNameForPropertyNameNode(decl.name);
|
||||
var declName = ts.getNameOfDeclaration(node);
|
||||
if (declName) {
|
||||
return ts.getPropertyNameForPropertyNameNode(declName);
|
||||
}
|
||||
switch (node.kind) {
|
||||
case 186 /* FunctionExpression */:
|
||||
@@ -77763,7 +77842,7 @@ var ts;
|
||||
if (node.kind === 233 /* ModuleDeclaration */) {
|
||||
return getModuleName(node);
|
||||
}
|
||||
var name = node.name;
|
||||
var name = ts.getNameOfDeclaration(node);
|
||||
if (name) {
|
||||
var text = nodeText(name);
|
||||
if (text.length > 0) {
|
||||
@@ -82184,7 +82263,7 @@ var ts;
|
||||
// falls through
|
||||
case 149 /* PropertyDeclaration */:
|
||||
case 146 /* Parameter */:
|
||||
return node.name.kind;
|
||||
return ts.getNameOfDeclaration(node).kind;
|
||||
}
|
||||
}
|
||||
function getDynamicIndentation(node, nodeStartLine, indentation, delta) {
|
||||
@@ -85023,7 +85102,7 @@ var ts;
|
||||
}
|
||||
var declaration = declarations[0];
|
||||
// Clone name to remove leading trivia.
|
||||
var name = ts.getSynthesizedClone(declaration.name);
|
||||
var name = ts.getSynthesizedClone(ts.getNameOfDeclaration(declaration));
|
||||
var visibilityModifier = createVisibilityModifier(ts.getModifierFlags(declaration));
|
||||
var modifiers = visibilityModifier ? ts.createNodeArray([visibilityModifier]) : undefined;
|
||||
var type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration));
|
||||
@@ -85584,13 +85663,14 @@ var ts;
|
||||
return declarations;
|
||||
}
|
||||
function getDeclarationName(declaration) {
|
||||
if (declaration.name) {
|
||||
var result_7 = getTextOfIdentifierOrLiteral(declaration.name);
|
||||
var name = ts.getNameOfDeclaration(declaration);
|
||||
if (name) {
|
||||
var result_7 = getTextOfIdentifierOrLiteral(name);
|
||||
if (result_7 !== undefined) {
|
||||
return result_7;
|
||||
}
|
||||
if (declaration.name.kind === 144 /* ComputedPropertyName */) {
|
||||
var expr = declaration.name.expression;
|
||||
if (name.kind === 144 /* ComputedPropertyName */) {
|
||||
var expr = name.expression;
|
||||
if (expr.kind === 179 /* PropertyAccessExpression */) {
|
||||
return expr.name.text;
|
||||
}
|
||||
@@ -88143,6 +88223,9 @@ var ts;
|
||||
var compilerOptions = JSON.parse(compilerOptionsJson);
|
||||
var result = ts.resolveModuleName(moduleName, ts.normalizeSlashes(fileName), compilerOptions, _this.host);
|
||||
var resolvedFileName = result.resolvedModule ? result.resolvedModule.resolvedFileName : undefined;
|
||||
if (result.resolvedModule && result.resolvedModule.extension !== ts.Extension.Ts && result.resolvedModule.extension !== ts.Extension.Tsx && result.resolvedModule.extension !== ts.Extension.Dts) {
|
||||
resolvedFileName = undefined;
|
||||
}
|
||||
return {
|
||||
resolvedFileName: resolvedFileName,
|
||||
failedLookupLocations: result.failedLookupLocations
|
||||
|
||||
Reference in New Issue
Block a user