Commit Graph
38 Commits
Author SHA1 Message Date
José Valim b21a1f1f85 Disable warning of IEx commands via match_vars := apply 2017-07-10 02:13:26 +02:00
José Valim 73382f828b Move match vars handling and warnings to elixir_expand
Signed-off-by: José Valim <jose.valim@plataformatec.com.br>
2017-07-07 16:11:40 +02:00
José Valim 76c533f30e Ensure defaults and defoverridable work together, closes #6300
This commit changes the private super implementation to have
a tuple with the {kind, name} as first argument.
2017-07-06 15:47:56 +02:00
José Valim 2eb8490f9a Add prematch_vars 2017-02-23 10:43:09 +01:00
Aleksei Magusev a729847db6 Rename m/2 helper macro to key/2 in the main header file 2017-02-19 21:56:05 +01:00
José Valim e7e0d512ff Move erlang modules to new erl namespace 2017-02-19 20:20:59 +01:00
José Valim ad7642b7d6 Perform map_key check on elixir_exp 2017-02-15 20:44:06 +01:00
José Valim 4728c562db Move &1 check to expansion pass 2017-02-15 17:07:07 +01:00
José Valim 11537b4c11 Remove unused elixir_scope fields 2017-02-14 14:38:35 +01:00
Eksperimental 31822b42f0 Properly spell PID (#4883) 2016-06-25 09:03:35 +02:00
José Valim 6128444f4b Move more items away from ord* when possible 2015-10-19 12:19:15 +02:00
José Valim 5b88ef22d2 Move internal vars and backup vars from orddict to maps 2015-10-18 23:32:28 +02:00
eksperimental 61675c3ea8 Add space after comma: Format consistently 2015-03-17 22:55:27 +07:00
José Valim a7dbfd1e82 Remove broken and unfixable delegate_locals_to implementation 2015-01-06 23:34:08 +01:00
José Valim c435dbe38d Convert #elixir_env to a struct too 2014-04-30 16:32:13 +02:00
José Valim e5c13e6dd2 Convert Macro.Env to a struct 2014-04-30 15:07:50 +02:00
José Valim 56f15d9f4e Do not add spaces after { and before }
This makes the source code consistent with the result
returned by inspect/2.
2014-04-21 19:06:35 +02:00
José Valim 8e38540470 Support :into in for comprehensions 2014-02-17 14:24:17 +01:00
José Valim 79faa1f706 Do not export case and receive vars 2014-01-04 10:45:13 +01:00
José Valim 2a6940014a Move environment cache to locals tracker, which is per module 2014-01-02 20:44:32 +01:00
José + Eric 2a1941112e Cache the environment for function definition
This speeds up compilation and reduces memory consumption. For
example, Ecto test suite consumes consistently 30% less memory
and loads 20% faster.
2014-01-02 18:10:59 +01:00
José Valim 1c4b759c4e Bring back no name and simplify var merging 2014-01-01 12:22:49 +01:00
José Valim 9cd56804ea Use a main counter for hygienic variables 2013-12-31 14:20:24 +01:00
José Valim 77aca31ffe Remove expansion counter 2013-12-31 10:40:04 +01:00
José Valim dc63e25995 Simplify erlang translation var building 2013-12-30 14:33:14 +01:00
José Valim 83c93beaa6 Get rid of environment macro counter in favor of a global one 2013-12-30 11:45:23 +01:00
José Valim 254065d3c4 Clean up synax_error, asstions and merge mechanisms 2013-12-29 14:22:45 +01:00
José Valim 29b38ab9e0 Discard old dispatch 2013-12-29 12:23:38 +01:00
José Valim c4419268b8 Move module compilation to rely on elixir_exp 2013-12-28 15:01:31 +01:00
José Valim 574e92fc57 Also expand binaries 2013-12-27 15:52:17 +01:00
José Valim 219ded1b91 Rename DispatchTracker to LocalsTracker 2013-12-22 09:20:41 +01:00
José Valim bb05011dca Expand quote 2013-12-19 20:42:33 +01:00
José Valim c296e62543 Expand tuples and other special forms 2013-12-19 15:58:13 +01:00
José Valim 8847f8ed68 Start locals expansion 2013-12-19 15:33:13 +01:00
José Valim 613298c4ab Add variables expansion 2013-12-18 12:32:40 +01:00
José Valim f62c26b9b6 Ensure record aliases in the same quote can be accessed, closes #1915
This commit also simplifies macro expansion for both imports and aliases
to always give higher preference to the macro environment rather than
the caller one, if such is available. The deal is to simplify both the
code and understanding of how macros work.
2013-12-07 20:01:11 +01:00
José Valim be71239b7c Move more code to Elixir land, simplify serialization 2013-11-24 13:28:50 +01:00
José Valim 7d26bfbfad Move remaining functions to elixir_env 2013-11-22 23:13:26 +01:00