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

Function simplifyClassDeclaration

internal/checker/nodebuilder.go:188–210  ·  view source on GitHub ↗
(f *ast.NodeFactory, classDecl *ast.Node, symbol *ast.Symbol)

Source from the content-addressed store, hash-verified

186}
187
188func simplifyClassDeclaration(f *ast.NodeFactory, classDecl *ast.Node, symbol *ast.Symbol) *ast.Node {
189 classDeclarations := core.Filter(symbol.Declarations, ast.IsClassLike)
190 var originalClassDecl *ast.Node
191 if len(classDeclarations) > 0 {
192 originalClassDecl = classDeclarations[0]
193 } else {
194 originalClassDecl = classDecl
195 }
196 modifiers := originalClassDecl.ModifierFlags() & ^(ast.ModifierFlagsExport | ast.ModifierFlagsAmbient)
197 isAnonymous := ast.IsClassExpression(originalClassDecl)
198 if isAnonymous {
199 cd := classDecl.AsClassDeclaration()
200 classDecl = f.UpdateClassDeclaration(
201 cd,
202 classDecl.Modifiers(),
203 nil,
204 cd.TypeParameters,
205 cd.HeritageClauses,
206 cd.Members,
207 )
208 }
209 return ast.ReplaceModifiers(f, classDecl, f.NewModifierList(ast.CreateModifiersFromModifierFlags(modifiers, f.NewModifier)))
210}
211
212func simplifyModifiers(f *ast.NodeFactory, newDecl *ast.Node, isDeclKind func(*ast.Node) bool, symbol *ast.Symbol) *ast.Node {
213 decls := core.Filter(symbol.Declarations, isDeclKind)

Callers 1

ExpandSymbolForHoverMethod · 0.85

Calls 10

ModifierFlagsMethod · 0.95
FilterFunction · 0.92
IsClassExpressionFunction · 0.92
ReplaceModifiersFunction · 0.92
lenFunction · 0.85
AsClassDeclarationMethod · 0.80
NewModifierListMethod · 0.80
ModifiersMethod · 0.65

Tested by

no test coverage detected