MCPcopy Index your code
hub / github.com/nodejs/node / isEnumTypeRelatedTo

Function isEnumTypeRelatedTo

test/fixtures/snapshot/typescript.js:64520–64552  ·  view source on GitHub ↗
(sourceSymbol, targetSymbol, errorReporter)

Source from the content-addressed store, hash-verified

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;

Callers 1

isSimpleTypeRelatedToFunction · 0.85

Calls 8

getSymbolIdFunction · 0.85
getTypeOfSymbolFunction · 0.85
getPropertiesOfTypeFunction · 0.85
getPropertyOfTypeFunction · 0.85
typeToStringFunction · 0.85
getDeclaredTypeOfSymbolFunction · 0.85
getMethod · 0.65
setMethod · 0.45

Tested by

no test coverage detected