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