From e35651387f0c18256ab704af4f62e454d75b5968 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Mon, 27 Feb 2017 18:53:07 -0400 Subject: - Fixed a bug when compiling pattern-matching comparisons for several types. --- luxc/src/lux/compiler/js/lux.clj | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/luxc/src/lux/compiler/js/lux.clj b/luxc/src/lux/compiler/js/lux.clj index 4e7ddd8fd..2de9eeec1 100644 --- a/luxc/src/lux/compiler/js/lux.clj +++ b/luxc/src/lux/compiler/js/lux.clj @@ -178,19 +178,22 @@ (return (str "if(" cursor-peek " !== " _value ") { " pm-fail " }")) (&o/$NatPM _value) - (return (str "if(" cursor-peek " !== " _value ") { " pm-fail " }")) + (|do [=value (compile-nat _value)] + (return (str "if(" (str "LuxRT.eqI64(" cursor-peek "," _value ")") ") { " pm-fail " }"))) (&o/$IntPM _value) - (return (str "if(" cursor-peek " !== " _value ") { " pm-fail " }")) + (|do [=value (compile-int _value)] + (return (str "if(" (str "LuxRT.eqI64(" cursor-peek "," _value ")") ") { " pm-fail " }"))) (&o/$DegPM _value) - (return (str "if(" cursor-peek " !== " _value ") { " pm-fail " }")) + (|do [=value (compile-deg _value)] + (return (str "if(" (str "LuxRT.eqI64(" cursor-peek "," _value ")") ") { " pm-fail " }"))) (&o/$RealPM _value) (return (str "if(" cursor-peek " !== " _value ") { " pm-fail " }")) (&o/$CharPM _value) - (return (str "if(" cursor-peek " !== " (pr-str (str _value)) ") { " pm-fail " }")) + (return (str "if(" (str "(" cursor-peek ").C") " !== " (pr-str (str _value)) ") { " pm-fail " }")) (&o/$TextPM _value) (return (str "if(" cursor-peek " !== " (pr-str _value) ") { " pm-fail " }")) -- cgit v1.2.3