@@ -25,32 +25,62 @@ defmodule ElixirScript.Translator.Protocol.Test do
2525 end
2626
2727 js_code = """
28- import Elixir$ElixirScript$Kernel from './Elixir.ElixirScript.Kernel';
28+ import Elixir$ElixirScript$Kernel from './Elixir.ElixirScript.Kernel';
29+ import Implementations from './Elixir.Blank.Defimpl';
2930 const Elixir$Blank = Elixir.Core.Functions.defprotocol({
30- blank__qmark__: function(){}
31+ blank__qmark__: function() {
32+
33+ }
3134 });
32- Elixir.Core.Functions.defimpl(Elixir$Blank, Array,{
33- blank__qmark__: Elixir.Core.Patterns.defmatch(Elixir.Core.Patterns.make_case([Object.freeze([])],function() {
34- return true;
35- }),Elixir.Core.Patterns.make_case([Elixir.Core.Patterns.wildcard()],function() {
36- return false;
37- }))
38- })
39- Elixir.Core.Functions.defimpl(Elixir$Blank,Symbol,{
40- blank__qmark__: Elixir.Core.Patterns.defmatch(Elixir.Core.Patterns.make_case([false],function() {
35+ for(let {Type,Implementation} of Implementations) Elixir.Core.Functions.defimpl(Elixir$Blank,Type,Implementation)
36+ export default Elixir$Blank;
37+
38+ import Elixir$ElixirScript$Kernel from './Elixir.ElixirScript.Kernel';
39+ const blank__qmark__ = Elixir.Core.Patterns.defmatch(Elixir.Core.Patterns.make_case([false],function() {
4140 return true;
4241 }),Elixir.Core.Patterns.make_case([null],function() {
4342 return true;
4443 }),Elixir.Core.Patterns.make_case([Elixir.Core.Patterns.wildcard()],function() {
4544 return false;
46- }))
47- })
48- Elixir.Core.Functions.defimpl(Elixir$Blank, Elixir.Core.Integer, {
49- blank__qmark__: Elixir.Core.Patterns.defmatch(Elixir.Core.Patterns.make_case([Elixir.Core.Patterns.variable()],function(number) {
45+ }));
46+ export default {
47+ 'Type': Symbol, 'Implementation': {
48+ blank__qmark__
49+ }
50+ };
51+
52+ import Elixir$ElixirScript$Kernel from './Elixir.ElixirScript.Kernel';
53+ const blank__qmark__ = Elixir.Core.Patterns.defmatch(Elixir.Core.Patterns.make_case([Elixir.Core.Patterns.variable()],function(number) {
5054 return false;
51- }))
52- })
53- export default Elixir$Blank;
55+ }));
56+ export default {
57+ 'Type': Elixir.Core.Integer, 'Implementation': {
58+ blank__qmark__
59+ }
60+ };
61+
62+ import Elixir$ElixirScript$Kernel from './Elixir.ElixirScript.Kernel';
63+ const blank__qmark__ = Elixir.Core.Patterns.defmatch(Elixir.Core.Patterns.make_case([Object.freeze([])],function() {
64+ return true;
65+ }),Elixir.Core.Patterns.make_case([Elixir.Core.Patterns.wildcard()],function() {
66+ return false;
67+ }));
68+ export default {
69+ 'Type': Array, 'Implementation': {
70+ blank__qmark__
71+ }
72+ };
73+
74+
75+
76+ let impls = [];
77+ import Elixir$Blank$DefImpl$Elixir$Atom from './Elixir.Blank.DefImpl.Elixir.Atom';
78+ impls.push(Elixir$Blank$DefImpl$Elixir$Atom)
79+ import Elixir$Blank$DefImpl$Elixir$Integer from './Elixir.Blank.DefImpl.Elixir.Integer';
80+ impls.push(Elixir$Blank$DefImpl$Elixir$Integer)
81+ import Elixir$Blank$DefImpl$Elixir$List from './Elixir.Blank.DefImpl.Elixir.List';
82+ impls.push(Elixir$Blank$DefImpl$Elixir$List)
83+ export default impls;
5484 """
5585
5686 assert_translation ( ex_ast , js_code )
0 commit comments