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