MCPcopy Create free account
hub / github.com/microsoft/typescript-go / GetConstantValue

Method GetConstantValue

internal/checker/services.go:859–886  ·  view source on GitHub ↗
(node *ast.Node)

Source from the content-addressed store, hash-verified

857}
858
859func (c *Checker) GetConstantValue(node *ast.Node) any {
860 if node.Kind == ast.KindEnumMember {
861 return c.getEnumMemberValue(node).Value
862 }
863
864 if c.symbolNodeLinks.Get(node).resolvedSymbol == nil {
865 c.checkExpressionCached(node) // ensure cached resolved symbol is set
866 }
867 symbol := c.symbolNodeLinks.Get(node).resolvedSymbol
868 if symbol == nil && ast.IsEntityNameExpression(node) {
869 symbol = c.resolveEntityName(
870 node,
871 ast.SymbolFlagsValue,
872 true, /*ignoreErrors*/
873 false, /*dontResolveAlias*/
874 nil, /*location*/
875 )
876 }
877 if symbol != nil && symbol.Flags&ast.SymbolFlagsEnumMember != 0 {
878 // inline property\index accesses only for const enums
879 member := symbol.ValueDeclaration
880 if ast.IsEnumConst(member.Parent) {
881 return c.getEnumMemberValue(member).Value
882 }
883 }
884
885 return nil
886}
887
888func (c *Checker) getResolvedSignatureWorker(node *ast.Node, checkMode CheckMode, argumentCount int) (*Signature, []*Signature) {
889 parsedNode := printer.NewEmitContext().ParseNode(node)

Callers

nothing calls this directly

Calls 6

getEnumMemberValueMethod · 0.95
checkExpressionCachedMethod · 0.95
resolveEntityNameMethod · 0.95
IsEntityNameExpressionFunction · 0.92
IsEnumConstFunction · 0.92
GetMethod · 0.65

Tested by

no test coverage detected