Commit Graph
2015 Commits
Author SHA1 Message Date
Eksperimental df449805c8 Revise use of Note and Notice verbs (#10264) 2020-08-14 07:59:34 +02:00
José Valim e1e8f9afec Add column information to SyntaxError and TokenMissingError 2020-08-12 20:14:31 +02:00
José Valim afa6d0c177 Add test for invalid tokenizer expressions 2020-08-12 14:18:13 +02:00
Eksperimental 512594c08a Mention file:line in Already defined as ... error message (#10219) 2020-07-22 14:59:37 +02:00
José Valim 92cf894756 Require a trailing underscore to consider it a compiler variable 2020-07-17 13:59:52 +02:00
Fernando Tapia Rico fc6bf59462 Add List.Chars to bootstrap modules
If there is a compile error, Kernel.ParallelCompiler raises
`** (UndefinedFunctionError) function List.Chars.to_charlist/1 is
undefined (module List.Chars is not available)`.
2020-07-16 13:20:38 +02:00
José Valim 6228ade7d2 Do not warn if quotes are used on complex atoms
Atoms that have non-ascii characters or @ does not
require tokens. That's to streamline the developer
experience around examples :"foo@computer-name" and
:"hélló".
2020-07-15 20:10:31 +02:00
José Valim 08706cc490 Warn if a variable that looks like a compiler variable is unused (#10198)
Closes #10197.
2020-07-15 12:20:49 +02:00
José Valim 7aa93b188c Improve compiler error message when using | in a def pattern 2020-07-11 10:22:28 +02:00
José Valim 089d0cd6b6 Use macros instead of special casing in the compiler 2020-07-01 15:49:14 +02:00
José Valim 0166ee82a1 Do not read from ExCk chunk if not necessary
Since all information is in the debug chunk, we use
that instead. This also allows us to remove
`no_warn_undefined` from the ExCk chunk.
2020-06-25 15:34:46 +02:00
José Valim e51cc8b88c Also track exports API via local deps 2020-06-25 15:09:14 +02:00
José Valim 8b4ec95a99 Revert "Consistently handle empty blocks"
Actually, we don't allow `-> [EMPTY]` anywhere else.

This reverts commit 3c6891cb7d.
2020-06-25 12:32:07 +02:00
José Valim 3c6891cb7d Consistently handle empty blocks 2020-06-24 20:48:05 +02:00
José Valim 9a6db666a1 Do not make requires/imports compile-time dependencies
Previously, imports and requires were always added as
compile-time dependencies. With this change, they are
"export" dependencies, which are dependencies that depend
on the API defined by a module, such as struct and its
public definitions.

This change should drastically remove the amount of
modules recompiled in Elixir, making imports more feasible
for large projects.
2020-06-24 14:30:00 +02:00
Ioannis Pinakoulakis 6666b7bb31 Typos on the erlang files (#10118) 2020-06-21 11:14:11 +02:00
Kelvin Stinghen 83374a88c9 Rewording the default arguments warnings (#10097) 2020-06-13 11:28:09 +02:00
José Valim cc138f37f2 Add line numbers to deprecated imports 2020-06-11 15:59:07 +02:00
José Valim 0df37749af Use reserved word where appropriate instead of token/keyword 2020-06-11 10:34:50 +02:00
José Valim 0bbcb8f280 Add is_map_key as a function that returns booleans 2020-06-07 17:27:12 +02:00
José Valim 4fea9cc942 Recompile Kernel before bootstrapping stdlib (#10002)
Before this patch, we could have slightly different
AST while compiling modules in parallel, depending
if modules were recompiled or not. Now we always
recompile Kernel before compiling the whole stdlib.

We used this opportunity to simplify bootstrap by
breaking it two steps. The first step is the minimal
necessary to compile Kernel itself. The second step
contains the whole compiler.

Closes #10000.
2020-04-30 01:38:04 +02:00
José Valim 8bcbfe9a87 Do not send keyword through static_atoms_encoder, closes #9996 2020-04-29 11:09:05 +02:00
José Valim 8770a61769 Handle ; inside empty parens, closes #9964 2020-04-26 11:42:20 +02:00
José Valim 3fe3accc05 Force modules to be loaded when they are required 2020-04-26 11:03:30 +02:00
Michał Łępicki 4da2b27863 Fix multiple dialyzer errors in the Elixir application (#9965)
* fix dialyzer issue in ParallelChecker.verify/2

* fix dialyzer specs for elixir_errors:form_error and elixir_errors:form_warn

* fix dialyzer error caused by erl_anno:anno type being opaque in exception.ex

* fix spec for File.stream!

* fix spec for IO.getn/2 - dialyzer doesn't support overloaded specs

* add explicit spec for System.halt/0 to fix dialyzer error

* fix spec for Regex.recompile/1
2020-04-26 09:40:40 +02:00
José Valim ec13373031 Allocate line zero ann just once 2020-04-25 20:41:53 +02:00
Michał Łępicki 7094e9754c Fix dialyzer errors caused by erl_anno:anno type being opaque (#9961) 2020-04-25 20:29:56 +02:00
José Valim 8ec9860a4e Ensure generated docs can be overridden without explicit clause 2020-04-25 00:35:04 +02:00
Ivan Rublev 29f29419a2 Add +++ and --- with right associativity to the list of custom operators (#9954) 2020-04-21 13:03:31 +02:00
José Valim 4e8ff12bea Add |/2 to special forms 2020-04-13 21:22:03 +02:00
Pablo Costas 110dfe67aa Fix tokenizer emitting repeated warnings in the REPL (#9924)
Now we only emit tokenizer warnings upon tokenization success.
2020-04-10 00:48:49 +02:00
José Valim 3300016a85 Fix Erlang compiler bug on 21.0 2020-04-10 00:46:37 +02:00
José Valim 8742096f77 Do not emit warwnings for injected funs 2020-04-07 18:23:04 +02:00
José Valim 3d3e233255 Refactor binary handling 2020-04-05 20:15:50 +02:00
José Valim 68ad287a58 Improve error message for nested binaries in match without specifiers, closes #9908 2020-04-04 12:35:46 +02:00
Wojtek Mach 2701169b1e Use new ExDoc extras auto-links (#9912) 2020-03-27 00:05:48 +01:00
José Valim f3806f82af Revert "Use an empty keyword list instead of nil for empty definitions"
Closes #9910

This reverts commit 4477115675.
2020-03-24 20:21:01 +01:00
José Valim 68c1ae2545 Fix formatting 2020-03-21 19:36:05 +01:00
José Valim 644bc7c5d7 Skip sys_core_prepare pass on Erlang/OTP 23+ 2020-03-18 14:21:13 +01:00
Eric Meadows-Jönsson cb2167600a Remove list generator clause erlang comprehensions (#9891)
Erlang comprehensions are only used when all generators are binary.
2020-03-12 22:56:27 +01:00
José Valim d375989b28 Do not warn on nullary calls without parens 2020-03-12 13:11:11 +01:00
José Valim 6055db482a Add start and stop events to compilation tracers, closes #9868 2020-03-02 14:36:19 +01:00
José Valim a43d0a0656 Remove unused compilation_status code 2020-02-29 11:46:18 +01:00
José Valim ead8cf6101 Pass application tracer warnings to the compiler, closes #9861 2020-02-29 10:38:51 +01:00
José Valim 351cff9d95 Fixes for Erlang/OTP 23 2020-02-26 12:06:08 +01:00
José Valim 3c9e004ded Rewrite and deprecate System.stacktrace 2020-02-24 21:31:37 +01:00
José Valim 413f608ed4 Do not show binary types if they are inferred 2020-02-23 10:26:11 +01:00
José Valim 182f16b76f Avoid false positives on capture warning 2020-02-20 21:50:47 +01:00
Eric Meadows-Jönsson 0f85b397da Add checking of patterns in body (#9828) 2020-02-20 16:46:06 +01:00
José Valim af4d6c3731 Revert "Support import Mod, only: :sigils (#9822)"
It will be moved to the current multi-letter sigils PR.

This reverts commit 26adc8db3d.
2020-02-19 10:42:48 +01:00