on master help sign in
Fix #1533, parsing upper case hex digits

The check for upper case letters A-F had a comparison going the wrong way. Rewrote to make it more clear.

commit0c6152d9a7928eee5fc5b03208d22b8ca7152544 authorEvan Czaplicki <evancz@users.noreply.github.com> dateSun 18 Dec 2016, 20:32 (10 years ago) parent47e71ba
3 files changed+33−1
src/Parse/Primitives.hs+1−1 tests/test-files/good-expected-js/Literals/Numbers.elm.js+14 tests/test-files/good/Literals/Numbers.elm+18
src/Parse/Primitives.hs+1−1
@@ -1240,7 +1240,7 @@ isHex word =
12401240{-# INLINE isCapHex #-}
12411241isCapHex :: Word16 -> Bool
12421242isCapHex word =
1243− word <= 0x0046 {- F -} && word <= 0x0041 {- A -}
1243+ 0x0041 {- A -} <= word && word <= 0x0046 {- F -}
12441244
12451245
12461246{-# INLINE readInt #-}
tests/test-files/good-expected-js/Literals/Numbers.elm.jsnew file+14
@@ -0,0 +1,14 @@
1+var _elm_lang$core$Main$hex5 = 1193865;
2+var _elm_lang$core$Main$hex4 = 48879;
3+var _elm_lang$core$Main$hex3 = 48879;
4+var _elm_lang$core$Main$hex2 = 64;
5+var _elm_lang$core$Main$hex1 = 4294967295;
6+var _elm_lang$core$Main$float4 = 2300.0;
7+var _elm_lang$core$Main$float3 = 6.022e26;
8+var _elm_lang$core$Main$float2 = 0.67;
9+var _elm_lang$core$Main$float1 = 3.14;
10+var _elm_lang$core$Main$exp4 = 1000.0;
11+var _elm_lang$core$Main$exp3 = 2.0e-9;
12+var _elm_lang$core$Main$exp2 = 3.0e7;
13+var _elm_lang$core$Main$exp1 = 4.0e9;
14+var _elm_lang$core$Main$int = 12345;
tests/test-files/good/Literals/Numbers.elmnew file+18
@@ -0,0 +1,18 @@
1+
2+int = 12345
3+
4+exp1 = 4e9
5+exp2 = 3E7
6+exp3 = 2e-9
7+exp4 = 1E+3
8+
9+float1 = 3.14
10+float2 = 0.67
11+float3 = 6.022e26
12+float4 = 0.23E4
13+
14+hex1 = 0xFFFFFFFF
15+hex2 = 0x0040
16+hex3 = 0xbeef
17+hex4 = 0xBEEF
18+hex5 = 0x0123789