(node, typeWithThis, baseWithThis, broadDiag)
| 84302 | return 0 /* MemberOverrideStatus.Ok */; |
| 84303 | } |
| 84304 | function issueMemberSpecificError(node, typeWithThis, baseWithThis, broadDiag) { |
| 84305 | // iterate over all implemented properties and issue errors on each one which isn't compatible, rather than the class as a whole, if possible |
| 84306 | var issuedMemberError = false; |
| 84307 | var _loop_31 = function (member) { |
| 84308 | if (ts.isStatic(member)) { |
| 84309 | return "continue"; |
| 84310 | } |
| 84311 | var declaredProp = member.name && getSymbolAtLocation(member.name) || getSymbolAtLocation(member); |
| 84312 | if (declaredProp) { |
| 84313 | var prop = getPropertyOfType(typeWithThis, declaredProp.escapedName); |
| 84314 | var baseProp = getPropertyOfType(baseWithThis, declaredProp.escapedName); |
| 84315 | if (prop && baseProp) { |
| 84316 | var rootChain = function () { return ts.chainDiagnosticMessages( |
| 84317 | /*details*/ undefined, ts.Diagnostics.Property_0_in_type_1_is_not_assignable_to_the_same_property_in_base_type_2, symbolToString(declaredProp), typeToString(typeWithThis), typeToString(baseWithThis)); }; |
| 84318 | if (!checkTypeAssignableTo(getTypeOfSymbol(prop), getTypeOfSymbol(baseProp), member.name || member, /*message*/ undefined, rootChain)) { |
| 84319 | issuedMemberError = true; |
| 84320 | } |
| 84321 | } |
| 84322 | } |
| 84323 | }; |
| 84324 | for (var _i = 0, _a = node.members; _i < _a.length; _i++) { |
| 84325 | var member = _a[_i]; |
| 84326 | _loop_31(member); |
| 84327 | } |
| 84328 | if (!issuedMemberError) { |
| 84329 | // check again with diagnostics to generate a less-specific error |
| 84330 | checkTypeAssignableTo(typeWithThis, baseWithThis, node.name || node, broadDiag); |
| 84331 | } |
| 84332 | } |
| 84333 | function checkBaseTypeAccessibility(type, node) { |
| 84334 | var signatures = getSignaturesOfType(type, 1 /* SignatureKind.Construct */); |
| 84335 | if (signatures.length) { |
no test coverage detected