From 28a755dc80a4a528e7f4820213f6ef0c779495ab Mon Sep 17 00:00:00 2001 From: Araq Date: Mon, 23 Mar 2020 12:03:49 +0100 Subject: [PATCH] trees.nim: compare floating points by their bitpatterns because NaN comparisions are always false (WORST design in the history of computing!) --- compiler/trees.nim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compiler/trees.nim b/compiler/trees.nim index 3b715053e0..8c89ccca98 100644 --- a/compiler/trees.nim +++ b/compiler/trees.nim @@ -39,7 +39,7 @@ proc exprStructuralEquivalent*(a, b: PNode; strictSymEquality=false): bool = result = a.sym.name.id == b.sym.name.id of nkIdent: result = a.ident.id == b.ident.id of nkCharLit..nkUInt64Lit: result = a.intVal == b.intVal - of nkFloatLit..nkFloat64Lit: result = a.floatVal == b.floatVal + of nkFloatLit..nkFloat64Lit: result = cast[uint64](a.floatVal) == cast[uint64](b.floatVal) of nkStrLit..nkTripleStrLit: result = a.strVal == b.strVal of nkCommentStmt: result = a.comment == b.comment of nkEmpty, nkNilLit, nkType: result = true