MCPcopy Index your code
hub / github.com/microsoft/typescript-go / emitIdentifierReference

Method emitIdentifierReference

internal/printer/printer.go:1141–1167  ·  view source on GitHub ↗
(node *ast.Identifier)

Source from the content-addressed store, hash-verified

1139}
1140
1141func (p *Printer) emitIdentifierReference(node *ast.Identifier) {
1142 if (p.externalHelpersModuleName != nil || p.uniqueHelperNames != nil) &&
1143 p.emitContext.EmitFlags(node.AsNode())&EFHelperName != 0 {
1144 if p.externalHelpersModuleName != nil {
1145 // Substitute `__helper` with `tslib_1.__helper`
1146 helper := p.emitContext.Factory.NewPropertyAccessExpression(
1147 p.externalHelpersModuleName.Clone(p.emitContext.Factory),
1148 nil, /*questionDotToken*/
1149 node.Clone(p.emitContext.Factory),
1150 ast.NodeFlagsNone,
1151 )
1152 p.emitContext.AssignCommentAndSourceMapRanges(helper, node.AsNode())
1153 p.emitPropertyAccessExpression(helper.AsPropertyAccessExpression())
1154 return
1155 }
1156 if p.uniqueHelperNames != nil {
1157 // Substitute `__helper` with `__helper_1` if there is a conflict in an ES module.
1158 helperName := p.getUniqueHelperName(node.Text)
1159 p.emitContext.AssignCommentAndSourceMapRanges(helperName, node.AsNode())
1160 node = helperName.AsIdentifier()
1161 }
1162 }
1163
1164 state := p.enterNode(node.AsNode())
1165 p.emitIdentifierText(node)
1166 p.exitNode(node.AsNode(), state)
1167}
1168
1169func (p *Printer) emitBindingIdentifier(node *ast.Identifier) {
1170 if p.uniqueHelperNames != nil &&

Callers 5

emitEntityNameMethod · 0.95
emitExpressionMethod · 0.95
emitModuleReferenceMethod · 0.95
emitJsxTagNameMethod · 0.95

Calls 12

getUniqueHelperNameMethod · 0.95
enterNodeMethod · 0.95
emitIdentifierTextMethod · 0.95
exitNodeMethod · 0.95
EmitFlagsMethod · 0.80
AsIdentifierMethod · 0.80
AsNodeMethod · 0.65
CloneMethod · 0.65

Tested by

no test coverage detected