From 27e25aafd9d6134d26af7824eac7fe73d883773a Mon Sep 17 00:00:00 2001 From: xhd2015 Date: Mon, 1 Apr 2024 18:52:49 +0800 Subject: [PATCH] fix copyExpr with *syntax.ListExpr --- cmd/xgo/version.go | 4 ++-- patch/syntax/rewrite.go | 12 ++++++++++++ runtime/core/version.go | 4 ++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/cmd/xgo/version.go b/cmd/xgo/version.go index c2411a0e..f37d8089 100644 --- a/cmd/xgo/version.go +++ b/cmd/xgo/version.go @@ -3,8 +3,8 @@ package main import "fmt" const VERSION = "1.0.11" -const REVISION = "b1b21571259df7c1632d86cef35ba681727a0cde+1" -const NUMBER = 143 +const REVISION = "43756010e13cabfae008c1de9d72f98b946b0a09+1" +const NUMBER = 144 func getRevision() string { return fmt.Sprintf("%s %s BUILD_%d", VERSION, REVISION, NUMBER) diff --git a/patch/syntax/rewrite.go b/patch/syntax/rewrite.go index b465879b..4655be9a 100644 --- a/patch/syntax/rewrite.go +++ b/patch/syntax/rewrite.go @@ -361,6 +361,14 @@ func copyName(name *syntax.Name) *syntax.Name { return &x } +func copyExprs(exprs []syntax.Expr) []syntax.Expr { + copyExprs := make([]syntax.Expr, len(exprs)) + for i, expr := range exprs { + copyExprs[i] = copyExpr(expr) + } + return copyExprs +} + func copyExpr(expr syntax.Expr) syntax.Expr { if expr == nil { return nil @@ -421,6 +429,10 @@ func copyExpr(expr syntax.Expr) syntax.Expr { x := *expr x.MethodList = copyFields(expr.MethodList) return &x + case *syntax.ListExpr: + x := *expr + x.ElemList = copyExprs(expr.ElemList) + return &x default: panic(fmt.Errorf("unrecognized expr while copying: %T", expr)) } diff --git a/runtime/core/version.go b/runtime/core/version.go index d714b9a9..50aa03e3 100644 --- a/runtime/core/version.go +++ b/runtime/core/version.go @@ -7,8 +7,8 @@ import ( ) const VERSION = "1.0.11" -const REVISION = "b1b21571259df7c1632d86cef35ba681727a0cde+1" -const NUMBER = 143 +const REVISION = "43756010e13cabfae008c1de9d72f98b946b0a09+1" +const NUMBER = 144 // these fields will be filled by compiler const XGO_VERSION = ""