Elixir release

1.14.1

Change breakdown

Organization at a glance

Detailed changelog

Enhancement

16 changes

Tool: Elixir Module: Kernel

Perform partial expansion of literals in module attributes

Tool: Elixir Module: Kernel

Do not add compile-time dependencies for literals as defaults in Application.compile_env/3 inside module attributes

Tool: Elixir Module: Macro

Add Macro.expand_literals/2 and Macro.expand_literals/3

Tool: Elixir Module: System

Add :close_stdin to System.shell/2

Tool: Mix Module: mix test

Accept --all-warnings option

Tool: Elixir Module: Kernel

Fix misleading warning when :uniq is given in for comprehensions and the result is unused

Tool: Elixir Module: Kernel

Improve error message for when there is a conflicting struct and ignoring module conflict

Tool: Elixir Module: Kernel

Do not delete @enforce_keys attribute after defstruct declaration

Tool: Elixir Module: Kernel

Do not crash the checker on modules with missing :debug_info chunk

Tool: Elixir Module: Macro

Fix error in Macro.to_string/2 when converting an AST with :erlang.binary_to_atom/2

Tool: Elixir Module: String

Fix String.split/3 and String.next_grapheme/1 returning invalid results on invalid UTF-8 encoding

Tool: Elixir Module: System

Do not close stdin by default in System.shell/2

Tool: Elixir Module: URI

Do not return uri.port as :undefined in certain cases in URI.new/1

Tool: ExUnit Module: ExUnit.DocTest

Do not crash when both :moduledoc and functions are specified in :only

Tool: IEx Module: CLI

Fix invalid argument handling when --no-pry is given

Tool: Mix Module: mix format

Do not cache inputs from .formatter.exs so they are properly re-evaluted on every call