(sourceSymbol, targetSymbol, errorReporter)
| 64518 | false; |
| 64519 | } |
| 64520 | function isEnumTypeRelatedTo(sourceSymbol, targetSymbol, errorReporter) { |
| 64521 | if (sourceSymbol === targetSymbol) { |
| 64522 | return true; |
| 64523 | } |
| 64524 | var id = getSymbolId(sourceSymbol) + "," + getSymbolId(targetSymbol); |
| 64525 | var entry = enumRelation.get(id); |
| 64526 | if (entry !== undefined && !(!(entry & 4 /* RelationComparisonResult.Reported */) && entry & 2 /* RelationComparisonResult.Failed */ && errorReporter)) { |
| 64527 | return !!(entry & 1 /* RelationComparisonResult.Succeeded */); |
| 64528 | } |
| 64529 | if (sourceSymbol.escapedName !== targetSymbol.escapedName || !(sourceSymbol.flags & 256 /* SymbolFlags.RegularEnum */) || !(targetSymbol.flags & 256 /* SymbolFlags.RegularEnum */)) { |
| 64530 | enumRelation.set(id, 2 /* RelationComparisonResult.Failed */ | 4 /* RelationComparisonResult.Reported */); |
| 64531 | return false; |
| 64532 | } |
| 64533 | var targetEnumType = getTypeOfSymbol(targetSymbol); |
| 64534 | for (var _i = 0, _a = getPropertiesOfType(getTypeOfSymbol(sourceSymbol)); _i < _a.length; _i++) { |
| 64535 | var property = _a[_i]; |
| 64536 | if (property.flags & 8 /* SymbolFlags.EnumMember */) { |
| 64537 | var targetProperty = getPropertyOfType(targetEnumType, property.escapedName); |
| 64538 | if (!targetProperty || !(targetProperty.flags & 8 /* SymbolFlags.EnumMember */)) { |
| 64539 | if (errorReporter) { |
| 64540 | errorReporter(ts.Diagnostics.Property_0_is_missing_in_type_1, ts.symbolName(property), typeToString(getDeclaredTypeOfSymbol(targetSymbol), /*enclosingDeclaration*/ undefined, 64 /* TypeFormatFlags.UseFullyQualifiedType */)); |
| 64541 | enumRelation.set(id, 2 /* RelationComparisonResult.Failed */ | 4 /* RelationComparisonResult.Reported */); |
| 64542 | } |
| 64543 | else { |
| 64544 | enumRelation.set(id, 2 /* RelationComparisonResult.Failed */); |
| 64545 | } |
| 64546 | return false; |
| 64547 | } |
| 64548 | } |
| 64549 | } |
| 64550 | enumRelation.set(id, 1 /* RelationComparisonResult.Succeeded */); |
| 64551 | return true; |
| 64552 | } |
| 64553 | function isSimpleTypeRelatedTo(source, target, relation, errorReporter) { |
| 64554 | var s = source.flags; |
| 64555 | var t = target.flags; |
no test coverage detected