llcppsigfetch:collect public methods
This commit is contained in:
@@ -300,7 +300,7 @@ func (ct *Converter) ProcessFuncDecl(cursor clang.Cursor) *ast.FuncDecl {
|
||||
fn.IsInline = true
|
||||
}
|
||||
|
||||
if cursor.Kind == clang.CursorCXXMethod || cursor.Kind == clang.CursorDestructor || cursor.Kind == clang.CursorConstructor {
|
||||
if isMethod(cursor) {
|
||||
if cursor.Kind == clang.CursorDestructor {
|
||||
fn.IsDestructor = true
|
||||
}
|
||||
@@ -466,7 +466,7 @@ type visitMethodsContext struct {
|
||||
|
||||
func visitMethods(cursor, parent clang.Cursor, clientData unsafe.Pointer) clang.ChildVisitResult {
|
||||
ctx := (*visitMethodsContext)(clientData)
|
||||
if cursor.Kind == clang.CursorCXXMethod || cursor.Kind == clang.CursorConstructor || cursor.Kind == clang.CursorDestructor {
|
||||
if isMethod(cursor) && cursor.CXXAccessSpecifier() != clang.CXXPrivate {
|
||||
method := ctx.converter.ProcessFuncDecl(cursor)
|
||||
if method != nil {
|
||||
*ctx.methods = append(*ctx.methods, method)
|
||||
@@ -653,6 +653,9 @@ func toToken(tok clang.Token) token.Token {
|
||||
return token.Token(tok.Kind() + 1)
|
||||
}
|
||||
}
|
||||
func isMethod(cursor clang.Cursor) bool {
|
||||
return cursor.Kind == clang.CursorCXXMethod || cursor.Kind == clang.CursorConstructor || cursor.Kind == clang.CursorDestructor
|
||||
}
|
||||
|
||||
func qualifiedExpr(name string) ast.Expr {
|
||||
parts := strings.Split(name, "::")
|
||||
|
||||
@@ -9,26 +9,33 @@ func main() {
|
||||
func TestClassDecl() {
|
||||
testCases := []string{
|
||||
`class A {
|
||||
public:
|
||||
int a;
|
||||
int b;
|
||||
};`,
|
||||
`class A {
|
||||
public:
|
||||
int a;
|
||||
int b;
|
||||
float foo(int a,double b);
|
||||
private:
|
||||
void bar();
|
||||
};`,
|
||||
`class A {
|
||||
public:
|
||||
A();
|
||||
explicit A();
|
||||
~A();
|
||||
static inline void foo();
|
||||
};`,
|
||||
`class Base {
|
||||
public:
|
||||
Base();
|
||||
virtual ~Base();
|
||||
virtual void foo();
|
||||
};
|
||||
class Derived : public Base {
|
||||
public:
|
||||
Derived();
|
||||
~Derived() override;
|
||||
void foo() override;
|
||||
|
||||
@@ -18,10 +18,12 @@ func TestScope() {
|
||||
}
|
||||
}`,
|
||||
`class a {
|
||||
public:
|
||||
void foo();
|
||||
};`,
|
||||
`namespace a {
|
||||
class b {
|
||||
public:
|
||||
void foo();
|
||||
};
|
||||
}`,
|
||||
|
||||
Reference in New Issue
Block a user