Commit Graph
11952 Commits
Author SHA1 Message Date
José Valim a6844bf725 Add tests for allow_locals option 2025-07-10 17:30:36 +02:00
Łukasz Samson 802ecdd4a0 Add local_for_callback option to Macro.Env.expand_import (#14620) 2025-07-10 17:15:21 +02:00
José Valim c710b2afb7 Remove explicit mentions to elixirc, as it isn't used in practice 2025-07-10 10:21:49 +02:00
Eksperimental 352f2723a9 Use backticks around literals in documentation (#14633) 2025-07-10 09:36:20 +02:00
Eksperimental 8bc49af49d Use thin space (U+2009) as a separator instead of _ and in regular English language (#14635) 2025-07-10 09:35:53 +02:00
José Valim e55c61ffaf Improve error message for protocols with no implementation, closes #14364 2025-07-10 09:30:34 +02:00
Eksperimental fa51593cc6 Standardize "Examples" heading section levels in docs (#14638)
* Convert "Examples" 3rd level headings to 2nd level when not under a 2nd level

* Convert 1st level "Examples" heading to 2nd level
2025-07-09 20:09:07 +02:00
Eksperimental f2804b96db Correct grammar in structural sorting order section (#14639)
It is not required by the Elixir developer, but it is not required for them to know this by heart.

The former indicates that it is the Elixir developers who are not requiring this, the latter expresses
that they do not need to know this by heart.
2025-07-09 20:08:47 +02:00
Zach Daniel e78f105f23 use simpler words in mix-and-otp guides (#14630) 2025-07-07 18:11:06 +02:00
José Valim 785ffcc7cd Add TODO 2025-07-06 09:46:31 +02:00
José Valim cfc43b37d4 Add notes to the code 2025-07-06 09:46:31 +02:00
José Valim efcd164e38 Fix return type of phi, closes #14621 2025-07-04 09:34:28 +02:00
José Valim b29c83a42f Apply further fn optimizations and fixes (#14619)
Closes #14598
2025-07-03 15:58:17 +02:00
José Valim d7bdea55de Add required field back to struct info
Closes #14616.
Closes #14617.
Closes #14500.
2025-07-03 12:21:39 +02:00
Guillaume Duboc 824fc3bc24 Perf optimizations and inferred intersections (#14605) 2025-07-03 11:39:54 +02:00
José Valim cf8689e498 Remove specs which are pass through and from private modules 2025-07-01 10:44:03 +02:00
Łukasz Samson e3f7759fde Replace keyword with concrete keyword lists in specs (#14611) 2025-06-30 17:24:28 +02:00
José Valim 2fe44b747d Fix warnings on Erlang/OTP 28 2025-06-30 11:57:23 +02:00
José Valim 32ed2c38b2 Remove Regex warning until Erlang/OTP 28.1 2025-06-30 10:55:16 +02:00
José Valim ad524f528f Improve URI docs 2025-06-29 16:21:32 +02:00
Art Kay 8172ff0775 Fix minor typo in the docs (#14606) 2025-06-26 07:17:16 +09:00
José Valim 08d3865fad Transform the struct update syntax into a type assertion
This transforms the struct update into a type assertion,
requiring the type system to be sure the expression has
precisely the given struct type.

The struct update syntax may still be deprecated in the
future but this will provide a safer migration path and
allow us to engage in more conversations with the community.
2025-06-25 19:30:04 +02:00
Łukasz Samson 54489ef86f Fix time unit in comment (#14600) 2025-06-24 07:09:23 +02:00
José Valim 54515bf48a Distinguish source_anno from doc_anno, see #14595 2025-06-21 03:54:44 -07:00
José Valim 9d4c91be2a Ensure block_keyword_or_binary_operator is handled in surround context, closes #14590 2025-06-21 03:25:36 -07:00
Guillaume Duboc cc9a5e7682 Simplified tuple definitions by removing negations (#14596) 2025-06-20 05:20:08 -07:00
Łukasz Samson b2587e8633 Handle error result from unescape_tokens in tokenizer (#14587) 2025-06-19 12:02:02 -07:00
Łukasz Samson 6ca0ad84b7 Consistently raise UnicodeConversionError in tokenizer (#14589) 2025-06-19 12:00:43 -07:00
Christopher Keele 66753a868b Improve docs for "textual sigils" (#14591) 2025-06-19 11:10:55 -07:00
Łukasz Samson 972f9e46ed Fix invalid warning on no parens call on true (#14593) 2025-06-19 05:56:47 -07:00
Łukasz Samson f07bc7b3d5 Fix typo in elixir_erl_pass inline_pure_function decode_www_form (#14592) 2025-06-19 20:08:57 +09:00
José Valim e27cd15715 Optimize empty_difference_subtype? for dynamic parts 2025-06-14 12:13:15 -07:00
Jean Klingler d59f49aa54 Mark inlined function call result as generated (#14581) 2025-06-14 19:05:31 +09:00
Tobias Pfeiffer 7ad145082b Document Map.fetch!/2 exception in its doc (#14573) 2025-06-12 10:53:06 +02:00
José Valim fb9a9e97d8 Allow captures to be reconstructed on type system pretty printing 2025-06-11 13:51:24 +02:00
José Valim e04444c42e Warn when invalid fun typespec is used 2025-06-11 12:08:45 +02:00
José Valim 5946e8bb9d Improve error message for bad/missing clauses, closes #14569 2025-06-10 14:38:30 +02:00
Joe Yates 46b5fabc63 Fix use of prefer with '-ing' (#14568) 2025-06-10 11:17:04 +02:00
José Valim bff9f3ebbc Point out module must be required before macro usage in match/guard 2025-06-10 10:13:50 +02:00
José Valim ff4adca18a Filter @compile debug_info when explicitly set to true
Closes #14567.
2025-06-10 09:58:23 +02:00
Theodor-Alexandru Irimia 954133d64c Clarify why and how to start second session for tests (#14566) 2025-06-09 22:26:53 +02:00
José Valim 319360ce9f Fix logger function link in CHANGELOG 2025-06-09 22:26:31 +02:00
José Valim 52495ba8bc Add tests for optional subtyping 2025-06-09 13:08:12 +02:00
José Valim 514fbbaf52 Update tables 2025-06-09 12:44:56 +02:00
Michał Łępicki 34cf44587c Fix mistake in "Untracked compile-time dependencies" anti-pattern (#14563) 2025-06-09 12:07:18 +02:00
José Valim 09dcbf7566 Introduce deprecations scheduled for Elixir v1.20 2025-06-07 21:55:06 +02:00
José Valim c001cbdd62 Start v1.20 2025-06-07 20:21:32 +02:00
José Valim 577c8033ba Optimize subtype? by aborting early (#14561)
In the same way we introduced non_disjoint_intersection
to optimize compatibility, we introduce empty_difference
to optimize subtyping.
2025-06-07 15:35:41 +02:00
Jean Klingler 84d806603d More precise error message when escaping a regex with a ref (#14560)
* More precise error message when escaping a regex with a ref

* Refactor as do_quote_map_value

* Yet another refactoring proposal
2025-06-07 21:56:10 +09:00
José Valim b1053b75c5 Use binary appending now that we require Erlang/OTP 26
Prompt
======

There is a format/2 function in inspect/algebra.ex that
calls format/3 recursively that returns a list of binaries.
Instead of doing so, I want you to pass a binary as accumulator,
<<>>, and then instead of `[head | format(...)]`, on every
operation you will do `format(<<acc::binary, result::binary>>, ...)`.

Notes
=====

The assistant was able to detect an issue with `collapse/4`
but it was unable to fix it. That and the changes to
mix/tasks/format.ex were addressed manually.
2025-06-07 12:46:47 +02:00