José Valim
28bd48ed21
Do not prematurely raise on end tokens, closes #6567
2017-09-12 21:58:46 +02:00
José Valim
fe7efd6969
Only add eol marker with both begin-end in containers have eol
2017-09-12 14:42:15 +02:00
José Valim
5ed491a7ea
Document all atoms exposed through __info__
2017-09-12 13:33:47 +02:00
José Valim
144df88cae
Fix overridable tests
2017-09-09 12:18:00 -07:00
José Valim
1012b60ac9
Do not traverse clauses table to retrieve defaults
...
Closes #6553
2017-09-09 11:50:57 -07:00
Kelvin Stinghen
ecdb8232c0
Warning on the use of length(x) == 0 on guards ( #6538 )
2017-09-06 22:38:44 +02:00
Kelvin Stinghen
68f4601044
Improve the error message for rescue, catch and else inside def ( #6542 )
2017-09-06 20:42:38 +02:00
Tomasz Marek Sulima
3b74a0e09a
Warn if catch comes before rescue in try ( #6537 )
2017-09-04 11:39:00 +02:00
José Valim
9d3b4cac92
Use __info__ and module_info where appropriate
2017-09-02 23:35:23 +02:00
Ivan Kozik
75150ec7eb
Fix more typos and spelling errors ( #6530 )
2017-09-01 10:20:53 +02:00
Ivan Kozik
b9ca29768a
Fix a few spelling errors ( #6525 )
2017-09-01 10:17:57 +02:00
José Valim
93f79543ae
Do not use __block__ and __aliases__ as literal identifiers
2017-09-01 01:45:08 +02:00
José Valim
a8bafae468
Store eol info in arrow ops
2017-09-01 00:58:15 +02:00
José Valim
58b498c90f
Store if containers and stab are followed by eol
2017-09-01 00:35:14 +02:00
José Valim
c99cac4794
Convert iodata to binary instead of bitstring concatenation
2017-08-31 23:15:21 +02:00
José Valim
2d1e00264e
Push blocks to parser
2017-08-31 15:58:03 +02:00
Kelvin Stinghen
a5f64607ac
Add Port.monitor/1 and Port.demonitor/1 functions ( #6518 )
2017-08-31 12:02:11 +02:00
José Valim
97ece16b11
Add more formatter metadata
2017-08-30 17:21:17 +02:00
José Valim
6030be5ae5
Add literal annotation for aliases
2017-08-28 23:59:45 +02:00
José Valim
4fdeba67f6
Add parser rule for call with unary and do-end block
2017-08-28 23:15:45 +02:00
José Valim
89752e724c
Also wrap keyword literals in blocks
2017-08-28 22:27:43 +02:00
José Valim
9a33445c6c
Do not unescape interpolation
2017-08-28 14:17:12 +02:00
José Valim
a378154652
Make terminator binaries
2017-08-27 12:39:40 +02:00
José Valim
dcb76f8882
Do not translate empty files to nil
2017-08-25 14:56:15 +02:00
Andrea Leopardi
82dfe6f56e
Add :format metadata to strings and charlist literals ( #6505 )
2017-08-25 01:33:02 +02:00
José Valim
8914d2c5f0
unquote_splicing has arity of 1
2017-08-24 13:55:35 +02:00
José Valim
4f9f2cea24
Add String.Tokenizer back to tokenizer scope
2017-08-23 17:55:29 +02:00
José Valim
1e648fc73e
Allow strings/atoms/charlists to be emitted unescaped
2017-08-23 17:36:09 +02:00
Andrea Leopardi
4cfce073c1
Keep the representation of "float" tokens like we do for "int" tokens ( #6501 )
2017-08-23 12:57:10 +02:00
Andrea Leopardi
bd1508cc23
Fix integer token representation for decimal integers
2017-08-23 12:07:46 +02:00
Andrea Leopardi
2f9b651011
Merge integer tokens into the "int" token ( #6499 )
2017-08-23 11:55:12 +02:00
Andrea Leopardi
8cd9b8a75a
Change the format of tokens ( #6495 )
...
Right now, tokens are "{Token, Location}" or "{Token, Location, Value}".
This commit changes "Location" from "{Line, StartColumn, EndColumn}" to
"{Line, {StartColumn, EndColumn}, Meta}" where "Meta" can be anything.
This will be used for things such as storing the format of integers.
2017-08-22 21:12:30 +02:00
José Valim
dbaf38093c
Silence behaviour warnings on bootstrapping
2017-08-22 13:22:26 +02:00
José Valim
0b0ab9f8ef
Add Code.Identifier to hold shared identifier logic throughout Elixir
2017-08-22 13:22:26 +02:00
Andrea Leopardi
1dd4c16958
Rename the "hexadecimal" token to "hex"
2017-08-22 00:07:03 +02:00
José Valim
db95576520
Remove ordering issue on errors_test.exs, closes #6490
2017-08-21 22:17:43 +02:00
José Valim
100ea4e73a
Add more information about system start and shutdown
...
Closes #6479 .
2017-08-19 21:37:41 +02:00
Glauber Campinho
7951cb6a8c
Do not crash for unknown var inside binary pattern in match ( #6459 )
2017-08-15 11:53:19 +02:00
José Valim
b1fba30330
Use default match_vars and context on definitions
2017-08-13 17:57:40 +02:00
José Valim
0beeef8b1f
Do not crash IEx on :init.stop
2017-08-01 21:10:29 +02:00
José Valim
5fb5c5a4f4
Always use in_context definition for struct expansion, closes #6409
2017-07-31 06:39:26 +02:00
José Valim
579f93bcc7
Ensure elixir_erl:debug_info/4 does not require elixir running ( #6401 )
2017-07-29 17:27:05 +02:00
José Valim
a1397e30f2
Do not serialize references, closes #6393
2017-07-29 12:59:18 +02:00
José Valim
3a1611f54e
Properly track unreachable defmacrops in locals tracker
2017-07-28 12:48:26 +02:00
José Valim
5ef45d1375
Fix compiler and dialyzer warnings on with
...
We mark all else clauses as generated and make sure
the `<-` patterns are not marked as so.
Closes #6378 .
Closes #6380 .
2017-07-26 09:57:48 +02:00
Alex Jiao
921f17e21d
Add heredoc info to heredoc list/binary literals when parsing ( #6372 )
2017-07-25 00:04:23 +02:00
José Valim
22a7f7894c
Remove erlang:get_stacktrace() warning
2017-07-20 19:19:20 +02:00
José Valim
1cc84f20c7
Do not use named ETS tables during module definition
...
Tables named after modules are very likely to be used
the application itself, which can lead to conflicts in
scenarios such as code reloading.
Closes #6361
2017-07-19 23:22:25 +02:00
Andrea Leopardi
e985d4e5d7
Bring the "e in _" syntax back to try/rescue ( #6360 )
2017-07-19 18:59:25 +02:00
Alex Jiao
c004527139
Augment integer literals with representation info ( #6344 )
2017-07-18 14:40:59 +02:00