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

Function getDeclaredTypeOfEnum

test/fixtures/snapshot/typescript.js:57476–57510  ·  view source on GitHub ↗
(symbol)

Source from the content-addressed store, hash-verified

57474 return type.flags & 1024 /* TypeFlags.EnumLiteral */ && !(type.flags & 1048576 /* TypeFlags.Union */) ? getDeclaredTypeOfSymbol(getParentOfSymbol(type.symbol)) : type;
57475 }
57476 function getDeclaredTypeOfEnum(symbol) {
57477 var links = getSymbolLinks(symbol);
57478 if (links.declaredType) {
57479 return links.declaredType;
57480 }
57481 if (getEnumKind(symbol) === 1 /* EnumKind.Literal */) {
57482 enumCount++;
57483 var memberTypeList = [];
57484 if (symbol.declarations) {
57485 for (var _i = 0, _a = symbol.declarations; _i < _a.length; _i++) {
57486 var declaration = _a[_i];
57487 if (declaration.kind === 260 /* SyntaxKind.EnumDeclaration */) {
57488 for (var _b = 0, _c = declaration.members; _b < _c.length; _b++) {
57489 var member = _c[_b];
57490 var value = getEnumMemberValue(member);
57491 var memberType = getFreshTypeOfLiteralType(getEnumLiteralType(value !== undefined ? value : 0, enumCount, getSymbolOfNode(member)));
57492 getSymbolLinks(getSymbolOfNode(member)).declaredType = memberType;
57493 memberTypeList.push(getRegularTypeOfLiteralType(memberType));
57494 }
57495 }
57496 }
57497 }
57498 if (memberTypeList.length) {
57499 var enumType_1 = getUnionType(memberTypeList, 1 /* UnionReduction.Literal */, symbol, /*aliasTypeArguments*/ undefined);
57500 if (enumType_1.flags & 1048576 /* TypeFlags.Union */) {
57501 enumType_1.flags |= 1024 /* TypeFlags.EnumLiteral */;
57502 enumType_1.symbol = symbol;
57503 }
57504 return links.declaredType = enumType_1;
57505 }
57506 }
57507 var enumType = createType(32 /* TypeFlags.Enum */);
57508 enumType.symbol = symbol;
57509 return links.declaredType = enumType;
57510 }
57511 function getDeclaredTypeOfEnumMember(symbol) {
57512 var links = getSymbolLinks(symbol);
57513 if (!links.declaredType) {

Callers 2

Calls 10

getSymbolLinksFunction · 0.85
getEnumKindFunction · 0.85
getEnumMemberValueFunction · 0.85
getEnumLiteralTypeFunction · 0.85
getSymbolOfNodeFunction · 0.85
getUnionTypeFunction · 0.85
createTypeFunction · 0.85
pushMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…