Commit Graph
325 Commits
Author SHA1 Message Date
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