on master help sign in
Merge pull request #1195 from elm-lang/dev

Dev

commit32e172986beec90eece9cd4d8d5088bc895c165f authorEvan Czaplicki <info@elm-lang.org> dateSun 22 Nov 2015, 13:16 (11 years ago) parentdf86c1c3c9e8b0
17 files changed+42−117
src/Generate/JavaScript.hs+1−1 src/Reporting/Report.hs+12−5 tests/test-files/good-expected-js/Cases/CharCase.elm.js+1−8 tests/test-files/good-expected-js/Cases/ListZip.elm.js+3−10 tests/test-files/good-expected-js/CodeGenBugs/CommentInterpretedAsInfix.elm.js+1−3 tests/test-files/good-expected-js/CodeGenBugs/Shadowing.elm.js+3−15 tests/test-files/good-expected-js/CodeGenBugs/Shadowing2.elm.js+1−4 tests/test-files/good-expected-js/CodeGenBugs/TailRecursion_UnsafeLabel.elm.js+2−7 tests/test-files/good-expected-js/Crash/CrashCase.elm.js+2−5 tests/test-files/good-expected-js/Crash/CrashIf.elm.js+2−7 tests/test-files/good-expected-js/Declarations/Ports.elm.js+6−19 tests/test-files/good-expected-js/Records/NonHomogeneousRecords.elm.js+2−8 tests/test-files/good-expected-js/Soundness/Apply.elm.js+1−4 tests/test-files/good-expected-js/Soundness/ApplyAnnotated.elm.js+1−4 tests/test-files/good-expected-js/Soundness/Id.elm.js+1−4 tests/test-files/good-expected-js/Soundness/IdAnnotated.elm.js+1−4 tests/test-files/good-expected-js/Strings/QuotesAndComments.elm.js+2−9
src/Generate/JavaScript.hs+1−1
@@ -40,7 +40,7 @@ generate module_ =
4040 [ assign make (function [localRuntime] body)
4141 ]
4242 in
43− PP.displayS (PP.renderPretty 0.4 160 (ES.prettyPrint javascript)) ""
43+ PP.displayS (PP.renderPretty 1 160 (ES.prettyPrint javascript)) ""
4444
4545
4646
src/Reporting/Report.hs+12−5
@@ -47,8 +47,8 @@ toJson extraFields (Report title subregion pre post) =
4747 let
4848 fields =
4949 [ "tag" .= title
50− , "overview" .= displayS (renderPretty 1 80 pre) ""
51− , "details" .= displayS (renderPretty 1 80 post) ""
50+ , "overview" .= nonAnsiRender pre
51+ , "details" .= nonAnsiRender post
5252 ]
5353 in
5454 (subregion, fields ++ extraFields)
@@ -93,9 +93,16 @@ toHandle handle location region rprt source =
9393
9494toString :: String -> R.Region -> Report -> String -> String
9595toString location region rprt source =
96− displayS
97− (stripAnsi (renderPretty 1 80 (toDoc location region rprt source)))
98− ""
96+ nonAnsiRender (toDoc location region rprt source)
97+
98+
99+
100+-- DOC TO STRING WITH NO ANSI CODES
101+
102+
103+nonAnsiRender :: Doc -> String
104+nonAnsiRender doc =
105+ displayS (stripAnsi (renderPretty 1 80 doc)) ""
99106
100107
101108stripAnsi :: SimpleDoc -> SimpleDoc
tests/test-files/good-expected-js/Cases/CharCase.elm.js+1−8
@@ -5,13 +5,6 @@ Elm.Main.make = function (_elm) {
55 if (_elm.Main.values) return _elm.Main.values;
66 var _U = Elm.Native.Utils.make(_elm);
77 var _op = {};
8− var foo = function (x) {
9− var _p0 = x;
10− if (_p0.valueOf() === "A") {
11− return "hello";
12− } else {
13− return "letter A was not seen";
14− }
15− };
8+ var foo = function (x) { var _p0 = x;if (_p0.valueOf() === "A") { return "hello";} else { return "letter A was not seen";}};
169 return _elm.Main.values = {_op: _op,foo: foo};
1710};
tests/test-files/good-expected-js/Cases/ListZip.elm.js+3−10
@@ -5,9 +5,7 @@ Elm.Main.make = function (_elm) {
55 if (_elm.Main.values) return _elm.Main.values;
66 var _U = Elm.Native.Utils.make(_elm);
77 var _op = {};
8− var Cons = F2(function (a,b) {
9− return {ctor: "Cons",_0: a,_1: b};
10− });
8+ var Cons = F2(function (a,b) { return {ctor: "Cons",_0: a,_1: b};});
119 var Nil = {ctor: "Nil"};
1210 var zip = F2(function (list1,list2) {
1311 var _p0 = {ctor: "_Tuple2",_0: list1,_1: list2};
@@ -17,14 +15,9 @@ Elm.Main.make = function (_elm) {
1715 if (_p0._1.ctor === "Nil") {
1816 return Nil;
1917 } else {
20− return A2(Cons,
21− {ctor: "_Tuple2",_0: _p0._0._0,_1: _p0._1._0},
22− A2(zip,_p0._0._1,_p0._1._1));
18+ return A2(Cons,{ctor: "_Tuple2",_0: _p0._0._0,_1: _p0._1._0},A2(zip,_p0._0._1,_p0._1._1));
2319 }
2420 }
2521 });
26− return _elm.Main.values = {_op: _op
27− ,Nil: Nil
28− ,Cons: Cons
29− ,zip: zip};
22+ return _elm.Main.values = {_op: _op,Nil: Nil,Cons: Cons,zip: zip};
3023};
tests/test-files/good-expected-js/CodeGenBugs/CommentInterpretedAsInfix.elm.js+1−3
@@ -8,7 +8,5 @@ Elm.Main.make = function (_elm) {
88 var always = F2(function (x,s) { return x;});
99 _op["|>"] = F2(function (a,f) { return f(a);});
1010 var value = A2(_op["|>"],"Hi",always("Hello"));
11− return _elm.Main.values = {_op: _op
12− ,always: always
13− ,value: value};
11+ return _elm.Main.values = {_op: _op,always: always,value: value};
1412};
tests/test-files/good-expected-js/CodeGenBugs/Shadowing.elm.js+3−15
@@ -6,22 +6,10 @@ Elm.Main.make = function (_elm) {
66 var _U = Elm.Native.Utils.make(_elm);
77 var _op = {};
88 var toName = function (a) {
9− var name = function () {
10− var _p0 = a;
11− if (_p0.ctor === "First") {
12− return "True";
13− } else {
14− return _p0._0;
15− }
16− }();
9+ var name = function () { var _p0 = a;if (_p0.ctor === "First") { return "True";} else { return _p0._0;}}();
1710 return name;
1811 };
19− var Second = F2(function (a,b) {
20− return {ctor: "Second",_0: a,_1: b};
21− });
12+ var Second = F2(function (a,b) { return {ctor: "Second",_0: a,_1: b};});
2213 var First = {ctor: "First"};
23− return _elm.Main.values = {_op: _op
24− ,First: First
25− ,Second: Second
26− ,toName: toName};
14+ return _elm.Main.values = {_op: _op,First: First,Second: Second,toName: toName};
2715};
tests/test-files/good-expected-js/CodeGenBugs/Shadowing2.elm.js+1−4
@@ -16,8 +16,5 @@ Elm.Main.make = function (_elm) {
1616 return 0;
1717 }
1818 };
19− return _elm.Main.values = {_op: _op
20− ,Just: Just
21− ,Nothing: Nothing
22− ,withDefault0: withDefault0};
19+ return _elm.Main.values = {_op: _op,Just: Just,Nothing: Nothing,withDefault0: withDefault0};
2320};
tests/test-files/good-expected-js/CodeGenBugs/TailRecursion_UnsafeLabel.elm.js+2−7
@@ -19,12 +19,7 @@ Elm.Main.make = function (_elm) {
1919 }
2020 }
2121 });
22− var Cons = F2(function (a,b) {
23− return {ctor: "Cons",_0: a,_1: b};
24− });
22+ var Cons = F2(function (a,b) { return {ctor: "Cons",_0: a,_1: b};});
2523 var Nil = {ctor: "Nil"};
26− return _elm.Main.values = {_op: _op
27− ,Nil: Nil
28− ,Cons: Cons
29− ,foldl$: foldl$};
24+ return _elm.Main.values = {_op: _op,Nil: Nil,Cons: Cons,foldl$: foldl$};
3025};
tests/test-files/good-expected-js/Crash/CrashCase.elm.js+2−5
@@ -3,17 +3,14 @@ Elm.Main.make = function (_elm) {
33 "use strict";
44 _elm.Main = _elm.Main || {};
55 if (_elm.Main.values) return _elm.Main.values;
6− var _U = Elm.Native.Utils.make(_elm),
7− $Debug = Elm.Debug.make(_elm);
6+ var _U = Elm.Native.Utils.make(_elm),$Debug = Elm.Debug.make(_elm);
87 var _op = {};
98 var test = function (x) {
109 var _p0 = x;
1110 if (_p0 === 1) {
1211 return 2;
1312 } else {
14− return _U.crashCase("Main",
15− {start: {line: 5,column: 5},end: {line: 9,column: 43}},
16− _p0)("unexpected value");
13+ return _U.crashCase("Main",{start: {line: 5,column: 5},end: {line: 9,column: 43}},_p0)("unexpected value");
1714 }
1815 };
1916 return _elm.Main.values = {_op: _op,test: test};
tests/test-files/good-expected-js/Crash/CrashIf.elm.js+2−7
@@ -3,13 +3,8 @@ Elm.Main.make = function (_elm) {
33 "use strict";
44 _elm.Main = _elm.Main || {};
55 if (_elm.Main.values) return _elm.Main.values;
6− var _U = Elm.Native.Utils.make(_elm),
7− $Debug = Elm.Debug.make(_elm);
6+ var _U = Elm.Native.Utils.make(_elm),$Debug = Elm.Debug.make(_elm);
87 var _op = {};
9− var test = function (x) {
10− return x ? 2 : _U.crash("Main",
11− {start: {line: 8,column: 9}
12− ,end: {line: 8,column: 20}})("unexpected value");
13− };
8+ var test = function (x) { return x ? 2 : _U.crash("Main",{start: {line: 8,column: 9},end: {line: 8,column: 20}})("unexpected value");};
149 return _elm.Main.values = {_op: _op,test: test};
1510};
tests/test-files/good-expected-js/Declarations/Ports.elm.js+6−19
@@ -7,21 +7,11 @@ Elm.Main.make = function (_elm) {
77 var _op = {};
88 var students = Elm.Native.Port.make(_elm).outbound("students",
99 function (v) {
10− return Elm.Native.List.make(_elm).toArray(v).map(function (v) {
11− return {name: v.name,age: v.age};
12− });
10+ return Elm.Native.List.make(_elm).toArray(v).map(function (v) { return {name: v.name,age: v.age};});
1311 },
1412 _U.list([{name: "Tom",age: 42}]));
15− var time = Elm.Native.Port.make(_elm).outbound("time",
16− function (v) {
17− return v;
18− },
19− 3.14);
20− var fortyTwo = Elm.Native.Port.make(_elm).outbound("fortyTwo",
21− function (v) {
22− return v;
23− },
24− 42);
13+ var time = Elm.Native.Port.make(_elm).outbound("time",function (v) { return v;},3.14);
14+ var fortyTwo = Elm.Native.Port.make(_elm).outbound("fortyTwo",function (v) { return v;},42);
2515 var record = Elm.Native.Port.make(_elm).inbound("record",
2616 "{ x : Float, y : Float }",
2717 function (v) {
@@ -41,22 +31,19 @@ Elm.Main.make = function (_elm) {
4131 "( Float, Bool )",
4232 function (v) {
4333 return typeof v === "object" && v instanceof Array ? {ctor: "_Tuple2"
44− ,_0: typeof v[0] === "number" ? v[0] : _U.badPort("a number",
45− v[0])
34+ ,_0: typeof v[0] === "number" ? v[0] : _U.badPort("a number",v[0])
4635 ,_1: typeof v[1] === "boolean" ? v[1] : _U.badPort("a boolean (true or false)",
4736 v[1])} : _U.badPort("an array",v);
4837 });
4938 var number = Elm.Native.Port.make(_elm).inbound("number",
5039 "Int",
5140 function (v) {
52− return typeof v === "number" && isFinite(v) && Math.floor(v) === v ? v : _U.badPort("an integer",
53− v);
41+ return typeof v === "number" && isFinite(v) && Math.floor(v) === v ? v : _U.badPort("an integer",v);
5442 });
5543 var userID = Elm.Native.Port.make(_elm).inbound("userID",
5644 "String",
5745 function (v) {
58− return typeof v === "string" || typeof v === "object" && v instanceof String ? v : _U.badPort("a string",
59− v);
46+ return typeof v === "string" || typeof v === "object" && v instanceof String ? v : _U.badPort("a string",v);
6047 });
6148 return _elm.Main.values = {_op: _op};
6249};
tests/test-files/good-expected-js/Records/NonHomogeneousRecords.elm.js+2−8
@@ -5,13 +5,7 @@ Elm.Main.make = function (_elm) {
55 if (_elm.Main.values) return _elm.Main.values;
66 var _U = Elm.Native.Utils.make(_elm);
77 var _op = {};
8− var bindFields = function (thing) {
9− var y = thing.y;
10− var x = thing.x;
11− return thing;
12− };
8+ var bindFields = function (thing) { var y = thing.y;var x = thing.x;return thing;};
139 var Thing = F2(function (a,b) { return {x: a,y: b};});
14− return _elm.Main.values = {_op: _op
15− ,Thing: Thing
16− ,bindFields: bindFields};
10+ return _elm.Main.values = {_op: _op,Thing: Thing,bindFields: bindFields};
1711};
tests/test-files/good-expected-js/Soundness/Apply.elm.js+1−4
@@ -5,9 +5,6 @@ Elm.Main.make = function (_elm) {
55 if (_elm.Main.values) return _elm.Main.values;
66 var _U = Elm.Native.Utils.make(_elm);
77 var _op = {};
8− var apply = function (f) {
9− var g = function (x) { return f(x);};
10− return g;
11− };
8+ var apply = function (f) { var g = function (x) { return f(x);};return g;};
129 return _elm.Main.values = {_op: _op,apply: apply};
1310};
tests/test-files/good-expected-js/Soundness/ApplyAnnotated.elm.js+1−4
@@ -5,9 +5,6 @@ Elm.Main.make = function (_elm) {
55 if (_elm.Main.values) return _elm.Main.values;
66 var _U = Elm.Native.Utils.make(_elm);
77 var _op = {};
8− var apply = function (f) {
9− var g = function (x) { return f(x);};
10− return g;
11− };
8+ var apply = function (f) { var g = function (x) { return f(x);};return g;};
129 return _elm.Main.values = {_op: _op,apply: apply};
1310};
tests/test-files/good-expected-js/Soundness/Id.elm.js+1−4
@@ -5,9 +5,6 @@ Elm.Main.make = function (_elm) {
55 if (_elm.Main.values) return _elm.Main.values;
66 var _U = Elm.Native.Utils.make(_elm);
77 var _op = {};
8− var myId = function () {
9− var id = function (x) { return x;};
10− return id;
11− }();
8+ var myId = function () { var id = function (x) { return x;};return id;}();
129 return _elm.Main.values = {_op: _op,myId: myId};
1310};
tests/test-files/good-expected-js/Soundness/IdAnnotated.elm.js+1−4
@@ -5,9 +5,6 @@ Elm.Main.make = function (_elm) {
55 if (_elm.Main.values) return _elm.Main.values;
66 var _U = Elm.Native.Utils.make(_elm);
77 var _op = {};
8− var myId = function () {
9− var id = function (x) { return x;};
10− return id;
11− }();
8+ var myId = function () { var id = function (x) { return x;};return id;}();
129 return _elm.Main.values = {_op: _op,myId: myId};
1310};
tests/test-files/good-expected-js/Strings/QuotesAndComments.elm.js+2−9
@@ -8,13 +8,6 @@ Elm.Main.make = function (_elm) {
88 var commentStart = "{-";
99 var singleQuote = _U.chr("\'");
1010 var doubleQuote = _U.chr("\"");
11− var variablesWithPrimes = function (x) {
12− var x$ = x;
13− return x$;
14− };
15− return _elm.Main.values = {_op: _op
16− ,variablesWithPrimes: variablesWithPrimes
17− ,doubleQuote: doubleQuote
18− ,singleQuote: singleQuote
19− ,commentStart: commentStart};
11+ var variablesWithPrimes = function (x) { var x$ = x;return x$;};
12+ return _elm.Main.values = {_op: _op,variablesWithPrimes: variablesWithPrimes,doubleQuote: doubleQuote,singleQuote: singleQuote,commentStart: commentStart};
2013};