All files / transpiler/types/symbols/cpp TCppSymbol.ts

0% Statements 0/0
0% Branches 0/0
0% Functions 0/0
0% Lines 0/0

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31                                                             
import type ICppClassSymbol from "./ICppClassSymbol";
import type ICppStructSymbol from "./ICppStructSymbol";
import type ICppNamespaceSymbol from "./ICppNamespaceSymbol";
import type ICppEnumSymbol from "./ICppEnumSymbol";
import type ICppEnumMemberSymbol from "./ICppEnumMemberSymbol";
import type ICppFunctionSymbol from "./ICppFunctionSymbol";
import type ICppVariableSymbol from "./ICppVariableSymbol";
import type ICppTypeAliasSymbol from "./ICppTypeAliasSymbol";
 
/**
 * Discriminated union of all C++ language symbol types.
 *
 * Use the `kind` field to narrow to a specific symbol type:
 * ```typescript
 * if (symbol.kind === "class") {
 *   // TypeScript knows symbol is ICppClassSymbol here
 * }
 * ```
 */
type TCppSymbol =
  | ICppClassSymbol
  | ICppStructSymbol
  | ICppNamespaceSymbol
  | ICppEnumSymbol
  | ICppEnumMemberSymbol
  | ICppFunctionSymbol
  | ICppVariableSymbol
  | ICppTypeAliasSymbol;
 
export default TCppSymbol;