Exec implements the InterpretableV2 interface method.
(frame *ExecutionFrame)
| 487 | |
| 488 | // Exec implements the InterpretableV2 interface method. |
| 489 | func (ne *evalNe) Exec(frame *ExecutionFrame) ref.Val { |
| 490 | lVal := ne.lhs.Exec(frame) |
| 491 | if types.IsError(lVal) { |
| 492 | return lVal |
| 493 | } |
| 494 | rVal := ne.rhs.Exec(frame) |
| 495 | if types.IsError(rVal) { |
| 496 | return rVal |
| 497 | } |
| 498 | var unk *types.Unknown |
| 499 | unk, _ = types.MaybeMergeUnknowns(lVal, unk) |
| 500 | unk, _ = types.MaybeMergeUnknowns(rVal, unk) |
| 501 | if unk != nil { |
| 502 | return unk |
| 503 | } |
| 504 | return types.Bool(types.Equal(lVal, rVal) != types.True) |
| 505 | } |
| 506 | |
| 507 | // Eval implements the Interpretable interface method. |
| 508 | func (ne *evalNe) Eval(ctx Activation) ref.Val { |