From 96aad929f7ffa14667c938f29a03ee439ab131c8 Mon Sep 17 00:00:00 2001 From: Phodal Huang Date: Sat, 9 Nov 2024 15:05:28 +0800 Subject: [PATCH] refactor(goast): improve handling of receiver name in method decl --- .../src/main/kotlin/chapi/ast/goast/GoFullIdentListener.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/chapi-ast-go/src/main/kotlin/chapi/ast/goast/GoFullIdentListener.kt b/chapi-ast-go/src/main/kotlin/chapi/ast/goast/GoFullIdentListener.kt index ff49ff3d..3bc5c3d8 100644 --- a/chapi-ast-go/src/main/kotlin/chapi/ast/goast/GoFullIdentListener.kt +++ b/chapi-ast-go/src/main/kotlin/chapi/ast/goast/GoFullIdentListener.kt @@ -95,12 +95,13 @@ class GoFullIdentListener(var fileName: String) : GoAstListener() { override fun enterMethodDecl(ctx: GoParser.MethodDeclContext?) { val receiverName = this.getStructNameFromReceiver(ctx!!.receiver()?.parameters()) if (ctx.receiver() != null) { - val text = ctx.receiver().parameters().parameterDecl()[0].identifierList().text + val parameterDecl = ctx.receiver().parameters().parameterDecl() + val text = parameterDecl.getOrNull(0)?.identifierList()?.text ?: "" receiverForCall[text] = receiverName } currentFunction = CodeFunction( - Name = ctx!!.IDENTIFIER().text, + Name = ctx.IDENTIFIER().text, MultipleReturns = buildReturnTypeFromSignature(ctx.signature()), Parameters = buildParameters(ctx.signature().parameters()) )