mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-17 21:06:50 -05:00
Revert "Use related spans for "implement abstract class" errors" (#48029)
This commit is contained in:
committed by
GitHub
parent
dada02a19e
commit
733eff2b10
@@ -39220,8 +39220,6 @@ namespace ts {
|
||||
|
||||
// NOTE: assignability is checked in checkClassDeclaration
|
||||
const baseProperties = getPropertiesOfType(baseType);
|
||||
const derivedClassDecl = getClassLikeDeclarationOfSymbol(type.symbol)!;
|
||||
const inheritedAbstractMemberNotImplementedErrors: Diagnostic[] = [];
|
||||
basePropertyCheck: for (const baseProperty of baseProperties) {
|
||||
const base = getTargetSymbol(baseProperty);
|
||||
|
||||
@@ -39242,6 +39240,7 @@ namespace ts {
|
||||
// type declaration, derived and base resolve to the same symbol even in the case of generic classes.
|
||||
if (derived === base) {
|
||||
// derived class inherits base without override/redeclaration
|
||||
const derivedClassDecl = getClassLikeDeclarationOfSymbol(type.symbol)!;
|
||||
|
||||
// It is an error to inherit an abstract member without implementing it or being declared abstract.
|
||||
// If there is no declaration for the derived class (as in the case of class expressions),
|
||||
@@ -39260,16 +39259,12 @@ namespace ts {
|
||||
}
|
||||
|
||||
if (derivedClassDecl.kind === SyntaxKind.ClassExpression) {
|
||||
const err = createDiagnosticForNode(derivedClassDecl,
|
||||
Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1,
|
||||
error(derivedClassDecl, Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1,
|
||||
symbolToString(baseProperty), typeToString(baseType));
|
||||
inheritedAbstractMemberNotImplementedErrors.push(err);
|
||||
}
|
||||
else {
|
||||
const err = createDiagnosticForNode(derivedClassDecl,
|
||||
Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2,
|
||||
error(derivedClassDecl, Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2,
|
||||
typeToString(type), symbolToString(baseProperty), typeToString(baseType));
|
||||
inheritedAbstractMemberNotImplementedErrors.push(err);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -39345,20 +39340,6 @@ namespace ts {
|
||||
error(getNameOfDeclaration(derived.valueDeclaration) || derived.valueDeclaration, errorMessage, typeToString(baseType), symbolToString(base), typeToString(type));
|
||||
}
|
||||
}
|
||||
|
||||
if (inheritedAbstractMemberNotImplementedErrors.length) {
|
||||
const err = error(
|
||||
derivedClassDecl,
|
||||
Diagnostics.Non_abstract_class_0_does_not_implement_all_abstract_members_of_1,
|
||||
typeToString(type), typeToString(baseType));
|
||||
|
||||
for (const inheritedAbstractMemberNotImplementedError of inheritedAbstractMemberNotImplementedErrors) {
|
||||
addRelatedInfo(
|
||||
err,
|
||||
inheritedAbstractMemberNotImplementedError,
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getNonInterhitedProperties(type: InterfaceType, baseTypes: BaseType[], properties: Symbol[]) {
|
||||
|
||||
@@ -7286,9 +7286,5 @@
|
||||
"A 'return' statement cannot be used inside a class static block.": {
|
||||
"category": "Error",
|
||||
"code": 18041
|
||||
},
|
||||
"Non-abstract class '{0}' does not implement all abstract members of '{1}'": {
|
||||
"category": "Error",
|
||||
"code": 18042
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
/* @internal */
|
||||
namespace ts.codefix {
|
||||
const errorCodes = [
|
||||
Diagnostics.Non_abstract_class_0_does_not_implement_all_abstract_members_of_1.code,
|
||||
Diagnostics.Non_abstract_class_0_does_not_implement_inherited_abstract_member_1_from_class_2.code,
|
||||
Diagnostics.Non_abstract_class_expression_does_not_implement_inherited_abstract_member_0_from_class_1.code,
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user