22 lines
375 B
Go
22 lines
375 B
Go
package common
|
|
|
|
import (
|
|
"go/ast"
|
|
)
|
|
|
|
func ResolveBaseType(expr ast.Expr) *string {
|
|
switch e := expr.(type) {
|
|
case *ast.Ident:
|
|
return &e.Name
|
|
case *ast.StarExpr:
|
|
return ResolveBaseType(e.X)
|
|
case *ast.ArrayType:
|
|
return ResolveBaseType(e.Elt)
|
|
case *ast.SelectorExpr:
|
|
return ResolveBaseType(e.X)
|
|
case *ast.ParenExpr:
|
|
return ResolveBaseType(e.X)
|
|
}
|
|
return nil
|
|
}
|