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

Function getBaseTypes

test/fixtures/snapshot/typescript.js:57173–57202  ·  view source on GitHub ↗
(type)

Source from the content-addressed store, hash-verified

57171 error(node, ts.Diagnostics.Type_0_recursively_references_itself_as_a_base_type, typeToString(type, /*enclosingDeclaration*/ undefined, 2 /* TypeFormatFlags.WriteArrayAsGenericType */));
57172 }
57173 function getBaseTypes(type) {
57174 if (!type.baseTypesResolved) {
57175 if (pushTypeResolution(type, 7 /* TypeSystemPropertyName.ResolvedBaseTypes */)) {
57176 if (type.objectFlags & 8 /* ObjectFlags.Tuple */) {
57177 type.resolvedBaseTypes = [getTupleBaseType(type)];
57178 }
57179 else if (type.symbol.flags & (32 /* SymbolFlags.Class */ | 64 /* SymbolFlags.Interface */)) {
57180 if (type.symbol.flags & 32 /* SymbolFlags.Class */) {
57181 resolveBaseTypesOfClass(type);
57182 }
57183 if (type.symbol.flags & 64 /* SymbolFlags.Interface */) {
57184 resolveBaseTypesOfInterface(type);
57185 }
57186 }
57187 else {
57188 ts.Debug.fail("type must be class or interface");
57189 }
57190 if (!popTypeResolution() && type.symbol.declarations) {
57191 for (var _i = 0, _a = type.symbol.declarations; _i < _a.length; _i++) {
57192 var declaration = _a[_i];
57193 if (declaration.kind === 257 /* SyntaxKind.ClassDeclaration */ || declaration.kind === 258 /* SyntaxKind.InterfaceDeclaration */) {
57194 reportCircularBaseType(declaration, type);
57195 }
57196 }
57197 }
57198 }
57199 type.baseTypesResolved = true;
57200 }
57201 return type.resolvedBaseTypes;
57202 }
57203 function getTupleBaseType(type) {
57204 var elementTypes = ts.sameMap(type.typeParameters, function (t, i) { return type.elementFlags[i] & 8 /* ElementFlags.Variadic */ ? getIndexedAccessType(t, numberType) : t; });
57205 return createArrayType(getUnionType(elementTypes || ts.emptyArray), type.readonly);

Callers 15

visitInterfaceTypeFunction · 0.85
serializeInterfaceFunction · 0.85
serializeAsClassFunction · 0.85
checkFunction · 0.85
resolveObjectTypeMembersFunction · 0.85
checkSuperExpressionFunction · 0.85
getSuperClassFunction · 0.85
_loop_28Function · 0.85
_loop_29Function · 0.85

Calls 7

pushTypeResolutionFunction · 0.85
getTupleBaseTypeFunction · 0.85
resolveBaseTypesOfClassFunction · 0.85
popTypeResolutionFunction · 0.85
reportCircularBaseTypeFunction · 0.85
failMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…