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

Этот коммит содержится в:
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 // Handlers
func handleClass(t *ast.TypeSpec) string { func handleClass(name string, st *ast.StructType) string {
st, ok := t.Type.(*ast.StructType) addClassFromStructType(name, st)
if !ok {
return ""
}
addClassFromStructType(t.Name.String(), st)
return "" return ""
} }
func addClassFromStructType(name string, s *ast.StructType) { func addClassFromStructType(name string, s *ast.StructType) {

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

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

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

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