Ver Fonte

добавил сравнение указателей между собой

kpmy há 10 anos atrás
pai
commit
03db1e7e47
2 ficheiros alterados com 10 adições e 1 exclusões
  1. 1 1
      fw_test_dump.bat
  2. 9 0
      rt2/rules2/wrap/data/val.go

+ 1 - 1
fw_test_dump.bat

@@ -1,5 +1,5 @@
 @echo off 
-fw -i=%1 -d=true > .1
+fw -i=%1 -d=true 2> .1
 IF ERRORLEVEL 1 GOTO err
 
 GOTO ok

+ 9 - 0
rt2/rules2/wrap/data/val.go

@@ -1682,6 +1682,15 @@ func (o *ops) Eq(a, b scope.Value) scope.Value {
 				case PTR:
 					assert.For(y == NIL, 40)
 					return BOOLEAN(x.val == nil || x.val.id == 0)
+				case *ptr:
+					switch {
+					case x.val == nil:
+						return BOOLEAN(y.val == nil || y.val.id == 0)
+					case y.val == nil:
+						return BOOLEAN(x.val == nil || y.val.id == 0)
+					default:
+						return BOOLEAN(x.val != nil && y.val != nil && x.val.id == y.val.id)
+					}
 				default:
 					panic(fmt.Sprintln(reflect.TypeOf(y)))
 				}