José Valim
1bf06bbc1a
Speed up protocols by concatenating modules at compilation time
2012-11-03 10:52:22 +01:00
José Valim
8b981efecd
Improve shadowed variable warning
2012-11-03 09:15:46 +01:00
José Valim
caa50368a7
Check if the first aliases argument is indeed an alias atom
2012-11-02 10:15:19 +01:00
José Valim
a144d27886
Warn that function definitions should start with lowercase characters or underscore, closes #620
2012-11-02 10:05:17 +01:00
José Valim
413fcfdd65
Reorganize keyword handling clauses
2012-11-02 10:05:17 +01:00
José Valim
78c6c7201f
Keywords are allowed after . identifier, closes #621
2012-11-02 10:05:17 +01:00
José Valim
01f9518899
Keep user's given name when rebinding variables
...
The following code:
counter = 1
counter = 2
Is now rewritten internally to:
counter = 1
counter@1 = 2
Which gives us a couple things:
1. Better debugging
2. We can now show warnings for rebound variables not used
Elixir also keeps `_@` prefix to store internal variables
(for example, `_@1`, `_@MODULE`, etc).
Closes #607 .
2012-11-01 12:37:08 +01:00
Yurii Rashkovskii
4906fac3cf
Remove dialyzer warnings from elixir_errors
2012-10-31 06:05:57 -07:00
José Valim
06d1b47cc2
Support @opaque
2012-10-30 10:56:53 +01:00
José Valim
097a427cb7
Ensure defoverridable functions can be referred in many clauses, closes #595
2012-10-30 10:37:10 +01:00
José Valim
8c317e3d43
Do not check clauses just after non quoted ones, closes #591
2012-10-30 10:13:32 +01:00
José Valim
f7490bd5af
Provide faster, with docs and debug info first compilation
2012-10-30 10:01:09 +01:00
Yurii Rashkovskii
154e73b0d4
Add String.t() and char_list() types, discourage use of string() because it might lead to confusion.
...
Note, however, that dialyzer will often talk about string() anyway.
Addresses #588
2012-10-29 01:55:30 -07:00
Yurii Rashkovskii
6a9a3b3efe
Reorder core modules so that elixir will compile
2012-10-28 19:31:31 -07:00
José Valim
833a153b33
Avoid dispatching to locals from compiled structures
2012-10-29 00:45:32 +01:00
José Valim
d75fb11dc4
Disable internal as soon as core is fully compiled
...
This allows us to compile callbacks for the following
modules, which would trigger missing behaviour warnings
otherwise.
2012-10-28 22:33:13 +01:00
José Valim
7c78f22a95
Allow to define a callback from a spec
2012-10-28 21:20:11 +01:00
José Valim
925ab81ca2
Define __info__(:module) instead of __info__(:self)
2012-10-28 21:20:11 +01:00
José Valim
2b9d67dd9d
More dialyzer fixes
2012-10-28 01:36:38 +02:00
José Valim
87391a5832
Implement more returns boolean checks
2012-10-28 01:06:00 +02:00
José Valim
f95529b7b3
Many dialyzer fixes
2012-10-27 22:20:15 +02:00
José Valim
21d2fec7aa
Filter no auto import list
2012-10-27 21:45:18 +02:00
José Valim
b497632540
Invert the order arguments are handled on in
2012-10-27 20:55:51 +02:00
José Valim
d1cbefdbe0
No need to special case the compiler_clause anymore
2012-10-27 20:54:37 +02:00
José Valim
2704ba1a07
Convert file to char list, closes #583
2012-10-27 19:57:04 +02:00
José Valim
03bb0831e5
Support do blocks on __scope__ special form
2012-10-26 20:37:25 +02:00
José Valim
194647ef5a
Only unquote() if unquote is permitted
2012-10-26 18:54:51 +02:00
José Valim
2f3289aaef
Try a different and simpler approach to clauses warnings, closes #567
2012-10-24 16:57:23 +02:00
José Valim
e2e6e5d0d4
Store overridable funtions defined in before_compile callbacks, closes #572
2012-10-24 11:55:12 +02:00
José Valim
dc169dc783
Fix an issue where variables inside clauses remained unassigned
2012-10-23 11:48:34 +02:00
José Valim
a617628848
Atoms true and false are also boolean returns
2012-10-23 11:48:34 +02:00
José Valim
d220618f12
Compare all known compilation types
2012-10-21 23:53:28 +02:00
José Valim
318454c092
Optimize range match when values are known at compile time
2012-10-21 20:56:47 +02:00
José Valim
f438630e82
Remove deprecated branches
2012-10-20 22:06:03 +02:00
José Valim
ca0dbe8f46
Merge pull request #555 from elixir-lang/jv-unordered-keywords
...
Unordered keywords
2012-10-19 02:54:14 -07:00
José Valim
673f27d1a8
unquote_splicing should work with pipes
2012-10-18 16:38:42 +02:00
José Valim
43d3e3eba6
Remove convertion to atom from parser
2012-10-18 15:12:52 +02:00
José Valim
4f3e66cdfd
Refactor elixir_tokenizer scope options
2012-10-18 14:46:54 +02:00
Yurii Rashkovskii
435c4615d1
Make tokenizer be able to limit atoms to existing atoms only
2012-10-18 13:10:35 +02:00
Yurii Rashkovskii
baa28932f9
Keywords are no longer sorted
2012-10-17 00:06:41 -07:00
ILYA Khlopotov
3c1b93f514
Fixing bug introduced in 'Protocols are powered by behaviours...'( 11f934b)
2012-10-12 10:53:49 -07:00
José Valim
601cbdfb3a
Allow line in quote to be an expression, closes #525
2012-10-11 21:22:49 +02:00
José Valim
444cec2d24
Support bytes, bits, utf8, utf16 and utf32
2012-10-11 13:58:42 +02:00
José Valim
2a98788ca3
Solve a::b ambiguity
2012-10-11 12:24:51 +02:00
José Valim
83ca39b6aa
If :B is allowed, B: should be too
2012-10-11 06:46:19 +02:00
José Valim
0aa0a404f9
Support unquote_splicing on root
2012-10-10 19:21:37 +02:00
José Valim
09f9f1faa3
Fix partial application on lists with many elements and tail
2012-10-10 13:45:48 +02:00
José Valim
69e4f6c24c
Make function naming consistent across modules
2012-10-10 08:54:38 +02:00
José Valim
4cd14e1334
Allow partial application on literals
2012-10-10 08:44:32 +02:00
José Valim
01678161c4
Merge pull request #521 from yrashk/decreasing-range
...
Support for decreasing ranges
2012-10-09 13:31:01 -07:00