José Valim
48b8efe9c6
Ensure proper tokenization of the ... identifier
2014-01-21 20:50:43 +01:00
José Valim
f671e1204c
Change precedence of <- to be the same as other generators
2014-01-16 20:08:55 +01:00
José Valim
5a2e838def
Deprecate <-/2 in favor of send/2
2014-01-14 18:27:41 +01:00
José Valim
53b68887b6
Invert the precedence of | and when
...
Although this adds some drawbacks when it comes to typespecs,
it prepares us for when we have named patterns.
2014-01-11 16:52:46 +01:00
José Valim
df8b216357
Reenable case clause rewriting, closes #1972
2014-01-04 10:45:18 +01:00
José Valim
79faa1f706
Do not export case and receive vars
2014-01-04 10:45:13 +01:00
José Valim
5e2ea082d1
Deprecate __FILE__ in favor of __DIR__ or __ENV__.file
2014-01-02 18:10:59 +01:00
José Valim
eaac3bbd76
Ensure aliases dispatch to the proper function, guarantee files are binaries
2013-12-30 12:38:36 +01:00
José Valim
d0a6792bdf
Temporarily disable case clause rewrite optimization
2013-12-30 12:16:41 +01:00
José Valim
0e627c9b09
Use expansion on function bodies
2013-12-29 10:54:10 +01:00
José Valim
f8b019c7c8
Move to the new expansion on the front-end
2013-12-28 23:14:55 +01:00
José Valim
ade26dedd8
Work on Elixir expressions rather than forms
2013-12-28 11:47:44 +01:00
José Valim
9ee79a16bb
Deprecate Macro.extract_args/1
2013-11-29 23:24:44 +01:00
Eric Meadows-Jonsson
9a0e8f38de
Remove record_test from eunit suite
2013-11-29 01:42:37 +01:00
José Valim
2655a318c2
Move some macros back to __op__ to work around bug in erl_eval
2013-11-22 15:42:12 +01:00
José Valim
9897b894be
Deprecate x in y inside matches
2013-10-31 11:36:05 +01:00
José Valim
0171e201fb
Move parsing from elixir_interpolations to elixir_parser
2013-10-26 13:46:01 +02:00
José Valim
404f77421a
Refactor string interpolation to delegate to the tokenizer
...
This refactoring helps us clean up the interpolation code and
guarantee it works as expected since it goes under the same
tokenization rules. It also helps provide better sigil handling
(going to be improved in upcoming commits).
2013-10-25 13:19:47 +02:00
elegua
e63e4d44a3
Fixed interpolation per issue 1758
2013-10-24 11:25:34 -07:00
José Valim
f3f64cdba2
Move to capture syntax
2013-09-10 23:33:53 -03:00
José Valim
488344839a
Allow any function identifier as a variable, closes #1649
2013-08-25 10:28:55 -03:00
José Valim
0510512375
Deprecate to_binary in favor of to_string
...
We also rename Binary.Chars to String.Chars.
As Binary.Chars was the protocol used for interpolation,
it is semantically correct to have a protocol that works
on strings, instead of raw binaries.
2013-08-22 12:19:30 +02:00
vanstee
ad67e4935a
Return error when tokenizing oversized atom
...
When "atomizing" an unsafe string, we need to make sure the atom length
is going to be less than the system limit (255). Any function calling
`unsafe_to_atom` checks for an error and returns it if present.
2013-08-10 17:10:47 -04:00
José Valim
b5428adda6
Add &local/arity and &Remote.fun/arity
2013-07-31 12:58:07 +02:00
José Valim
a013b39b8f
Do not double escape strings inside interpolation, closes #1494
2013-07-25 14:34:13 +02:00
José Valim
7ad7847596
Rearrange how ambiguous ops are handled, closes #1378
2013-07-06 12:32:22 +02:00
José Valim
6d491325d5
Update and remove out of date erl tests
2013-07-04 11:40:00 +02:00
José Valim
903aa60fec
Finish operator table clean up
2013-06-23 13:18:25 +02:00
José Valim
969bc968ee
Move ++, --, ** and // to new table
2013-06-23 13:18:25 +02:00
José Valim
68c890e179
Move and and or operators to the new table
2013-06-23 13:18:25 +02:00
José Valim
dd573c9806
Initial work cleaning up op table
2013-06-23 13:18:25 +02:00
José Valim
151695b43c
Add tests for nested whens
2013-06-22 18:53:18 +02:00
José Valim
5247961185
Optimize temp_vars lookup
2013-06-21 11:43:41 +02:00
José Valim
c4dcaf540d
Slight clean up on erlang tests
2013-06-20 22:44:22 +02:00
José Valim
21db352039
Always print warnings to stderr
2013-06-15 09:32:53 +02:00
José Valim
2c98c0999d
An Elixir module now translates to Elixir.Module instead of Elixir-Module
2013-05-23 14:36:56 +02:00
José Valim
9b0353a747
Improve error messages when there is a space in between function name and parenthesis
2013-05-21 12:57:22 +02:00
José Valim
e18c1602ba
Only add quoted: true to required ast nodes
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
b90b8d1385
Improve cons cell and other operators precedence, closes #862
2013-05-12 14:24:35 -06:00
José Valim
f484c9960f
Add a test for inline keyword blocks
2013-04-30 23:34:24 -07:00
José Valim
70432ca7f2
Remove deprecations
2013-04-20 19:22:13 -06: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
4096b31cfe
Ensure the proper scope is passed on args call, closes #949
2013-04-12 18:08:56 -07: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
6024014482
Improve error message on unclosed interpolation/string, closes #794
2013-03-17 13:57:20 -06:00
José Valim
8994feb0a3
Fix unused vars warnings
2013-02-02 13:33:00 -07:00
José Valim
fef7ef7233
Ensure consistent use of stab operator in do/end, parens and fn/end, closes #780
2013-01-27 11:00:59 -07:00
José Valim
abb1ae981a
Add hygienic imports to macros
2013-01-21 20:45:49 -07:00