José Valim
baf5fcf096
Ensure nested modules are properly defined, closes #1057
2013-05-13 16:24:29 -06:00
José Valim
e18c1602ba
Only add quoted: true to required ast nodes
2013-05-13 15:56:15 -06:00
José Valim
32ae6d3424
Ensure imports respect the quote context
2013-05-13 15:56:15 -06:00
José Valim
02d0aa1d9a
Deprecate var_context in favor of context
2013-05-13 15:56:15 -06:00
José Valim
5ce473152f
Provide a more robust alias and import expansion
...
Now that we support { quoted, true }, we can know
before hand if an alias or import comes from a macro
and act accordingly.
2013-05-13 15:56:15 -06:00
José Valim
f38cf28cbd
Store in the AST if contents come from a quoted expression
...
This provides a more robust way of checking from where
the original expressions are coming from compared to the
lexical check_clauses field we had in elixir_scope.
A direct consequence of this commit is that, the following
code:
defrecord Sample, [:hello] do
import List
end
Now raises a warning if the List import is not used,
where it didn't previously.
2013-05-13 15:56:15 -06:00
José Valim
9118b36069
Improve warnings related to default arguments
...
* "default arguments in some_fun/3 are never used"
* "the first default argument in some_fun/3 is never used"
* "the first 2 default arguments in some_fun/3 are never used"
Closes #929
2013-05-12 19:31:34 -06:00
José Valim
b90b8d1385
Improve cons cell and other operators precedence, closes #862
2013-05-12 14:24:35 -06:00
José Valim
930be9d99f
Improve function(some_macro/x) error message
2013-05-12 11:34:43 -06:00
José Valim
7b41ff3c01
Merge pull request #1026 from elixir-lang/jv-no-warn-unused-imports
...
Warn on unused imports
2013-05-09 16:55:16 -07:00
José Valim
0e8bac7e9e
IO.gets and IO.getb now return binaries when reading from stdio
2013-05-08 15:13:06 -06:00
José Valim
7bae0029f2
Automatically detect when to warn on import
2013-05-06 20:22:18 -06:00
José Valim
65f7d56a8e
Don't warn on unused imports
2013-05-06 20:17:31 -06:00
José Valim
c6222a05da
Refactor elixir_import to mention special forms list
2013-05-06 19:18:43 -06:00
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