diff --git a/lib/elixir/lib/code/normalizer.ex b/lib/elixir/lib/code/normalizer.ex index ad0fa8d3ba..08a25c7c0f 100644 --- a/lib/elixir/lib/code/normalizer.ex +++ b/lib/elixir/lib/code/normalizer.ex @@ -362,7 +362,7 @@ defmodule Code.Normalizer do normalize_kw_blocks(form, meta, args, state) allow_keyword?(form, arity) -> - args = normalize_args(args, %{state | parent_meta: state.parent_meta}) + args = normalize_args(args, %{state | parent_meta: meta}) {last_arg, leading_args} = List.pop_at(args, -1, []) last_args = @@ -384,7 +384,7 @@ defmodule Code.Normalizer do {form, meta, leading_args ++ last_args} true -> - args = normalize_args(args, %{state | parent_meta: state.parent_meta}) + args = normalize_args(args, %{state | parent_meta: meta}) {form, meta, args} end end diff --git a/lib/elixir/test/elixir/code_normalizer/formatted_ast_test.exs b/lib/elixir/test/elixir/code_normalizer/formatted_ast_test.exs index 0a6b6904b3..2d4983c225 100644 --- a/lib/elixir/test/elixir/code_normalizer/formatted_ast_test.exs +++ b/lib/elixir/test/elixir/code_normalizer/formatted_ast_test.exs @@ -507,6 +507,28 @@ defmodule Code.Normalizer.FormatterASTTest do # after """, literal_encoder: fn literal, _ -> {:ok, literal} end + + assert_same """ + block do + # before 1 + 1 + 1 + + # before 2 + 2 + 2 + end + """, + literal_encoder: fn literal, _ -> {:ok, literal} end + + assert_same """ + block do + # before 1 + Mix.install([1 + 1]) + + # before 2 + Mix.install([2 + 2]) + end + """, + literal_encoder: fn literal, _ -> {:ok, literal} end end test "before and after expressions with newlines" do