Переделка: классы и типы обрабатываются отдельно

Этот коммит содержится в:
Softonik 2024-02-11 21:30:26 +03:00 коммит произвёл Nobody
родитель a3f14ed097
коммит f7ed856d0c
3 изменённых файлов: 14 добавлений и 13 удалений

Просмотреть файл

@ -97,14 +97,8 @@ func (c *Class) AddMethod(m *ast.FuncDecl) {
}
// Handlers
func handleClass(t *ast.TypeSpec) string {
st, ok := t.Type.(*ast.StructType)
if !ok {
return ""
}
addClassFromStructType(t.Name.String(), st)
func handleClass(name string, st *ast.StructType) string {
addClassFromStructType(name, st)
return ""
}
func addClassFromStructType(name string, s *ast.StructType) {

Просмотреть файл

@ -33,7 +33,7 @@ func handleSpecs(specs []ast.Spec) (code string) {
case *ast.ValueSpec:
code += handleValueSpec(s) + ";"
case *ast.TypeSpec:
code += handleTypeSpec(spec)
code += handleTypeSpec(s)
}
}
return

Просмотреть файл

@ -8,10 +8,17 @@ var (
isPointerType = false
)
func handleTypeSpec(spec ast.Spec) (code string) {
s := spec.(*ast.TypeSpec)
handleClass(s)
return
func handleTypeSpec(s *ast.TypeSpec) (code string) {
st, ok := s.Type.(*ast.StructType)
if ok {
return handleClass(s.Name.String(), st)
}
return handleType(s)
}
func handleType(s *ast.TypeSpec) string {
return ""
}
func handleStructType(s *ast.StructType) (code string) {