José Valim
a93264be81
Private on_load functions should not trigger unused warning
2013-05-06 11:31:05 -06:00
José Valim
cbe82e0912
Add __DIR__, closes #1019
2013-05-06 11:03:37 -06:00
José Valim
ddb87a96ca
Private functions used by private macros no longer emit an unused warning, closes #885
2013-05-05 21:59:40 -06:00
José Valim
c53314dfc4
Ensure lexical scopes are not password forward by accident
2013-05-05 20:28:59 -06:00
José Valim
1019879bd0
Improve previous clause does not match warning
...
We have redefined the warning to say:
"trying to override previously defined function NAME/ARITY"
We have also relaxed the rules that causes the warning to
emitted. For example, if any kind of meta-programming or
unquoting is detected in the function definition, we skip
the warning altogether.
Closes #934 .
2013-05-04 14:59:15 -06:00
José Valim
c14ee51d15
Refactor elixir_quote to work on Elixir expressions
...
This allows us to re-use the code from Macro.escape,
reducing the duplication, and gives us more visibility
into the transformation process.
2013-05-04 14:31:58 -06:00
Devin Torres
901fedf266
Liberate in, fixes #817
2013-05-03 16:12:30 -05:00
José Valim
16e18240c6
Remove special case for implicit splicing inside quote
2013-05-01 00:29:40 -07:00
José Valim
35abb1d7ef
Ensure we don't splice keyword args unecessarily, closes #989
2013-04-30 15:23:50 -07:00
José Valim
61727e5c5d
Ensure do/else|*/end are inlinable, closes #966
2013-04-30 14:47:14 -07:00
José Valim
f791bd117c
Properly encode unicode binary chars, closes #961
2013-04-30 14:34:46 -07:00
José Valim
2e96d1de4d
Ensure imports are passed around arg by arg, closes #990
2013-04-28 18:09:23 -07:00
José Valim
b5ab795cdc
Clean up conversion to list
2013-04-28 18:09:23 -07:00
José Valim
7f9e95e223
Return nil from import
2013-04-28 18:09:23 -07:00
José Valim
3e6e6ee99b
Update exdoc links
2013-04-24 11:16:28 -06:00
José Valim
87d57a38a3
Do not go through eval if there is nothing to evaluate
2013-04-21 18:03:09 -06:00
José Valim
907920de44
Unfold the loop manually
2013-04-21 17:24:24 -06:00
José Valim
53d34099f1
Optimize elixir_tree_helpers:abstract_syntax
2013-04-21 17:07:25 -06:00
José Valim
4c70f1b3cd
Store clauses in a separate table (thanks to yrashk for first iteration of this patch)
2013-04-21 14:56:52 -06:00
José Valim
70432ca7f2
Remove deprecations
2013-04-20 19:22:13 -06:00
José Valim
fd29173d6d
Also dispatch to local macros
2013-04-16 12:09:38 -07:00
José Valim
963efc4593
Do not import IEx.Helpers since we delegate to them, closes, closes #957
2013-04-16 12:04:29 -07:00
José Valim
c78c8ddf08
Improve some docs
2013-04-15 23:04:51 -07:00
José Valim
c125636535
Ensure the macro system respects imports hygiene, closes #875
2013-04-13 18:25:43 -07:00
José Valim
531bd8da0c
Ensure hygiene also works with directl calls to Kernel.function
2013-04-13 17:19:19 -07:00
José Valim
a4d8fc2893
Ensure hygiene applies to function and partial applications
2013-04-13 17:19:19 -07:00
José Valim
b96c3c52ae
Remove check_require in favor of a meta tag
2013-04-13 17:19:19 -07:00
José Valim
3f7b867740
Refactor elixir_dispatch to rely more on elixir_scope
2013-04-13 17:19:19 -07:00
José Valim
f2e78d3d39
function(:is_atom, 1) is deprecated in favor of function(is_atom/1)
...
This is required so we can identity the proper function/arity
from quoting and properly hygienize function retrievals.
2013-04-13 17:19:19 -07:00
José Valim
5d1d3f23e9
Merge pull request #922 from bellthoven/fix_function_calls
...
Allow 'foo . (42)' calls
2013-04-12 18:44:29 -07:00
José Valim
01cc9ed0ec
Uncomment features related to unquote fragments
2013-04-12 18:14:34 -07:00
José Valim
4096b31cfe
Ensure the proper scope is passed on args call, closes #949
2013-04-12 18:08:56 -07:00
Yurii Rashkovskii
8d2034f07c
Implement Record.import macro that allows using private macros on public records
2013-04-11 16:28:44 -07:00
José Valim
52aa1fd068
Compile process upfront and do not rely on it in the error handler
2013-04-11 08:21:40 -07:00
José Valim
c2d1699248
Improve error messages on else do grammar mistakes, closes #888
2013-04-10 20:16:25 -07:00
José Valim
e412ce6b22
Can defined a nested module called Elixir, closes #858
2013-04-10 16:32:30 -07:00
José Valim
e01f958b1a
Allow match syntax on nested records, closes #871
2013-04-10 16:22:38 -07:00
José Valim
ca0250a9d7
Refactor find_dispatch to loop data functions and macros lists just once
2013-04-10 15:47:37 -07:00
alexrp
a34f38ee40
Only error on ambiguous imported function calls, not on the imports themselves. Fixes #788 .
2013-04-11 00:18:09 +02:00
José Valim
0c50664817
Improve deprecation of :+.() and friends
2013-04-09 19:14:55 -07:00
José Valim
7b9f2bd298
{}, [] and friends are purely deprecated
2013-04-07 21:25:29 -06:00
Gustavo Dutra
9016a18fa5
Allow multiple lines 'foo . ()' calls
2013-04-07 15:00:54 -03:00
Gustavo Dutra
bd6f27a5d5
Allow 'foo . (42)' calls
2013-04-07 01:38:30 -03:00
José Valim
15ac6e947a
Improve docs for function
2013-04-03 08:42:03 -06:00
José Valim
f7cad1cffc
Improve error messages
2013-03-27 09:54:00 -06:00
José Valim
6024014482
Improve error message on unclosed interpolation/string, closes #794
2013-03-17 13:57:20 -06:00
José Valim
f10171bfd2
Clean up Unicode using the new unquote fragments
2013-03-10 22:01:08 -06:00
José Valim
ff825b89bc
Support unquoting on Macro.escape
2013-03-10 21:26:35 -06:00
José Valim
2817b2ee90
Allow unquote in def*/2
...
This makes meta-programming in Elixir much easier and more friendly.
For example, here is how to convert a keywords argument into a bunch
of functions:
Enum.each [foo: 1, bar: 2, baz: 3], fn { k, v } ->
def unquote(k)(), do: unquote(v)
end
2013-03-10 17:59:04 -06:00
José Valim
affc44d020
unquote now applies to the closest quote
2013-03-10 17:23:02 -06:00