diff --git a/lib/mix/lib/mix/tasks/compile.app.ex b/lib/mix/lib/mix/tasks/compile.app.ex index 4061f5cb22..a91f4afb96 100644 --- a/lib/mix/lib/mix/tasks/compile.app.ex +++ b/lib/mix/lib/mix/tasks/compile.app.ex @@ -192,7 +192,7 @@ defmodule Mix.Tasks.Compile.App do :application.load({:application, app, properties}) Mix.Project.ensure_structure() - File.write!(target, [contents, ?.]) + File.write!(target, IO.chardata_to_string([contents, ?.])) File.touch!(target, new_mtime) # If we just created the .app file, it will have touched diff --git a/lib/mix/test/mix/tasks/compile.app_test.exs b/lib/mix/test/mix/tasks/compile.app_test.exs index b89a6866dc..72fba4ae67 100644 --- a/lib/mix/test/mix/tasks/compile.app_test.exs +++ b/lib/mix/test/mix/tasks/compile.app_test.exs @@ -110,7 +110,7 @@ defmodule Mix.Tasks.Compile.AppTest do test "uses custom application settings" do in_fixture("no_mixfile", fn -> Mix.Project.push(CustomProject) - env = [foo: [:one, "two", 3, 4], bar: [{} | %{foo: :bar}]] + env = [foo: [:one, "two", 3, 4, "฿"], bar: [{} | %{foo: :bar}]] Process.put(:application, maxT: :infinity, @@ -132,7 +132,7 @@ defmodule Mix.Tasks.Compile.AppTest do assert properties[:applications] == [:kernel, :stdlib, :elixir, :logger, :ex_unit, :example_app, :mix] - assert properties[:env] == [foo: [:one, "two", 3, 4], bar: [{} | %{foo: :bar}]] + assert properties[:env] == [foo: [:one, "two", 3, 4, "฿"], bar: [{} | %{foo: :bar}]] refute Keyword.has_key?(properties, :extra_applications) end)