MCPcopy
hub / github.com/microsoft/typescript-go / emitClassExpression

Method emitClassExpression

internal/printer/printer.go:2935–2962  ·  view source on GitHub ↗
(node *ast.ClassExpression)

Source from the content-addressed store, hash-verified

2933}
2934
2935func (p *Printer) emitClassExpression(node *ast.ClassExpression) {
2936 state := p.enterNode(node.AsNode())
2937 p.generateNameIfNeeded(node.Name())
2938
2939 pos := p.emitModifierList(node.AsNode(), node.Modifiers(), true /*allowDecorators*/)
2940 p.emitToken(ast.KindClassKeyword, pos, WriteKindKeyword, node.AsNode())
2941
2942 if node.Name() != nil {
2943 p.writeSpace()
2944 p.emitIdentifierName(node.Name().AsIdentifier())
2945 }
2946
2947 indented := p.shouldEmitIndented(node.AsNode())
2948 p.increaseIndentIf(indented)
2949
2950 p.emitTypeParameters(node.AsNode(), node.TypeParameters)
2951 p.emitList((*Printer).emitHeritageClauseNode, node.AsNode(), node.HeritageClauses, LFClassHeritageClauses)
2952 p.writeSpace()
2953 p.writePunctuation("{")
2954 p.pushNameGenerationScope(node.AsNode())
2955 p.generateAllMemberNames(node.Members)
2956 p.emitList((*Printer).emitClassElement, node.AsNode(), node.Members, LFClassMembers)
2957 p.popNameGenerationScope(node.AsNode())
2958 p.writePunctuation("}")
2959
2960 p.decreaseIndentIf(indented)
2961 p.exitNode(node.AsNode(), state)
2962}
2963
2964func (p *Printer) emitOmittedExpression(node *ast.Node) {
2965 p.exitNode(node, p.enterNode(node))

Callers 1

emitExpressionMethod · 0.95

Calls 15

enterNodeMethod · 0.95
generateNameIfNeededMethod · 0.95
emitModifierListMethod · 0.95
emitTokenMethod · 0.95
writeSpaceMethod · 0.95
emitIdentifierNameMethod · 0.95
shouldEmitIndentedMethod · 0.95
increaseIndentIfMethod · 0.95
emitTypeParametersMethod · 0.95
emitListMethod · 0.95
writePunctuationMethod · 0.95

Tested by

no test coverage detected