(f *ast.NodeFactory, classDecl *ast.Node, symbol *ast.Symbol)
| 186 | } |
| 187 | |
| 188 | func 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 | |
| 212 | func simplifyModifiers(f *ast.NodeFactory, newDecl *ast.Node, isDeclKind func(*ast.Node) bool, symbol *ast.Symbol) *ast.Node { |
| 213 | decls := core.Filter(symbol.Declarations, isDeclKind) |
no test coverage detected