Răsfoiți Sursa

фикс для параметров

Пётр 9 ani în urmă
părinte
comite
5c7b2285d8
2 a modificat fișierele cu 6 adăugiri și 3 ștergeri
  1. 2 2
      ir/ast.go
  2. 4 1
      tiss_test.go

+ 2 - 2
ir/ast.go

@@ -152,7 +152,7 @@ func (f *FuncExpr) Children() (ret []interface{}) {
 				merge = false
 				merge = false
 			}
 			}
 		}
 		}
-		if merge {
+		if merge && len(f.Params) > 0 {
 			ret = append(ret, mp)
 			ret = append(ret, mp)
 		} else {
 		} else {
 			for _, p := range tmp {
 			for _, p := range tmp {
@@ -176,7 +176,7 @@ func (f *FuncExpr) Children() (ret []interface{}) {
 				merge = false
 				merge = false
 			}
 			}
 		}
 		}
-		if merge {
+		if merge && len(f.Locals) > 0 {
 			ret = append(ret, ml)
 			ret = append(ret, ml)
 		} else {
 		} else {
 			for _, l := range tmp {
 			for _, l := range tmp {

+ 4 - 1
tiss_test.go

@@ -111,6 +111,10 @@ func TestValidation(t *testing.T) {
 	b := &ir.Block{}
 	b := &ir.Block{}
 	poo(t, b)
 	poo(t, b)
 
 
+	l0 := &ir.Local{}
+	l0.Name("$i")
+	l0.Type(types.I64)
+	poo(t, l0)
 	/* надо проверить все сущности
 	/* надо проверить все сущности
 	   Br
 	   Br
 	   BrIf
 	   BrIf
@@ -132,7 +136,6 @@ func TestValidation(t *testing.T) {
 	   IfExpr
 	   IfExpr
 	   Import
 	   Import
 	   LoadExpr
 	   LoadExpr
-	   Local
 	   Loop
 	   Loop
 	   Memory
 	   Memory
 	   Module
 	   Module