Skip to content

Commit 56f15d9

Browse files
author
José Valim
committed
Do not add spaces after { and before }
This makes the source code consistent with the result returned by inspect/2.
1 parent 7ccdb2a commit 56f15d9

File tree

289 files changed

+5664
-5664
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

289 files changed

+5664
-5664
lines changed

CHANGELOG.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -810,7 +810,7 @@
810810
* [ExUnit] Support context data in `setup_all`, `setup`, `teardown` and `teardown_all` callbacks
811811
* [IEx] Support `after_spawn` callbacks which are invoked after each process is spawned
812812
* [Kernel] Better error messages when invalid options are given to `import`, `alias` or `require`
813-
* [Kernel] Allow partial application on literals, for example: `{ &1, &2 }` to build tuples or `[&1|&2]` to build cons cells
813+
* [Kernel] Allow partial application on literals, for example: `{&1, &2}` to build tuples or `[&1|&2]` to build cons cells
814814
* [Kernel] Added `integer_to_binary` and `binary_to_integer`
815815
* [Kernel] Added `float_to_binary` and `binary_to_float`
816816
* [Kernel] Many improvements to `unquote` and `unquote_splicing`. For example, `unquote(foo).unquote(bar)(args)` is supported and no longer need to be written via `apply`
@@ -863,7 +863,7 @@
863863
* [Kernel] Deprecate `__LINE__` and `__FUNCTION__` in favor of `__ENV__.line` and `__ENV__.function`
864864
* [Kernel] Deprecate `in_guard` in favor of `__CALLER__.in_guard?`
865865
* [Kernel] `refer` is deprecated in favor of `alias`
866-
* [Module] `Module.add_compile_callback(module, target, callback)` is deprecated in favor of `Module.put_attribute(module, :before_compile, { target, callback })`
866+
* [Module] `Module.add_compile_callback(module, target, callback)` is deprecated in favor of `Module.put_attribute(module, :before_compile, {target, callback})`
867867
* [Module] `Module.function_defined?` is deprecated in favor of `Module.defines?`
868868
* [Module] `Module.defined_functions` is deprecated in favor of `Module.definitions_in`
869869

lib/eex/lib/eex.ex

+3-3
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ defmodule EEx do
108108
defmacro function_from_string(kind, name, source, args \\ [], options \\ []) do
109109
quote bind_quoted: binding do
110110
info = Keyword.merge [file: __ENV__.file, line: __ENV__.line], options
111-
args = Enum.map args, fn arg -> { arg, [line: info[:line]], nil } end
111+
args = Enum.map args, fn arg -> {arg, [line: info[:line]], nil} end
112112
compiled = EEx.compile_string(source, info)
113113

114114
case kind do
@@ -144,7 +144,7 @@ defmodule EEx do
144144
defmacro function_from_file(kind, name, file, args \\ [], options \\ []) do
145145
quote bind_quoted: binding do
146146
info = Keyword.merge options, [file: file, line: 1]
147-
args = Enum.map args, fn arg -> { arg, [line: 1], nil } end
147+
args = Enum.map args, fn arg -> {arg, [line: 1], nil} end
148148
compiled = EEx.compile_file(file, info)
149149

150150
@file file
@@ -207,7 +207,7 @@ defmodule EEx do
207207
### Helpers
208208

209209
defp do_eval(compiled, bindings, options) do
210-
{ result, _ } = Code.eval_quoted(compiled, bindings, options)
210+
{result, _} = Code.eval_quoted(compiled, bindings, options)
211211
result
212212
end
213213
end

lib/eex/lib/eex/compiler.ex

+22-22
Original file line numberDiff line numberDiff line change
@@ -17,37 +17,37 @@ defmodule EEx.Compiler do
1717

1818
# Generates the buffers by handling each expression from the tokenizer
1919

20-
defp generate_buffer([{ :text, chars }|t], buffer, scope, state) do
20+
defp generate_buffer([{:text, chars}|t], buffer, scope, state) do
2121
buffer = state.engine.handle_text(buffer, String.from_char_data!(chars))
2222
generate_buffer(t, buffer, scope, state)
2323
end
2424

25-
defp generate_buffer([{ :expr, line, mark, chars }|t], buffer, scope, state) do
25+
defp generate_buffer([{:expr, line, mark, chars}|t], buffer, scope, state) do
2626
expr = Code.string_to_quoted!(chars, [line: line, file: state.file])
2727
buffer = state.engine.handle_expr(buffer, mark, expr)
2828
generate_buffer(t, buffer, scope, state)
2929
end
3030

31-
defp generate_buffer([{ :start_expr, start_line, mark, chars }|t], buffer, scope, state) do
32-
{ contents, line, t } = look_ahead_text(t, start_line, chars)
33-
{ contents, t } = generate_buffer(t, "", [contents|scope], state.dict([]).line(line).start_line(start_line))
31+
defp generate_buffer([{:start_expr, start_line, mark, chars}|t], buffer, scope, state) do
32+
{contents, line, t} = look_ahead_text(t, start_line, chars)
33+
{contents, t} = generate_buffer(t, "", [contents|scope], state.dict([]).line(line).start_line(start_line))
3434
buffer = state.engine.handle_expr(buffer, mark, contents)
3535
generate_buffer(t, buffer, scope, state)
3636
end
3737

38-
defp generate_buffer([{ :middle_expr, line, _, chars }|t], buffer, [current|scope], state) do
39-
{ wrapped, state } = wrap_expr(current, line, buffer, chars, state)
38+
defp generate_buffer([{:middle_expr, line, _, chars}|t], buffer, [current|scope], state) do
39+
{wrapped, state} = wrap_expr(current, line, buffer, chars, state)
4040
generate_buffer(t, "", [wrapped|scope], state.line(line))
4141
end
4242

43-
defp generate_buffer([{ :end_expr, line, _, chars }|t], buffer, [current|_], state) do
44-
{ wrapped, state } = wrap_expr(current, line, buffer, chars, state)
43+
defp generate_buffer([{:end_expr, line, _, chars}|t], buffer, [current|_], state) do
44+
{wrapped, state} = wrap_expr(current, line, buffer, chars, state)
4545
tuples = Code.string_to_quoted!(wrapped, [line: state.start_line, file: state.file])
4646
buffer = insert_quotes(tuples, state.dict)
47-
{ buffer, t }
47+
{buffer, t}
4848
end
4949

50-
defp generate_buffer([{ :end_expr, line, _, chars }|_], _buffer, [], _state) do
50+
defp generate_buffer([{:end_expr, line, _, chars}|_], _buffer, [], _state) do
5151
raise EEx.SyntaxError, message: "unexpected token: #{inspect chars} at line #{inspect line}"
5252
end
5353

@@ -65,21 +65,21 @@ defmodule EEx.Compiler do
6565
new_lines = List.duplicate(?\n, line - state.line)
6666
key = length(state.dict)
6767
placeholder = '__EEX__(' ++ integer_to_list(key) ++ ');'
68-
{ current ++ placeholder ++ new_lines ++ chars, state.update_dict(&[{key, buffer}|&1]) }
68+
{current ++ placeholder ++ new_lines ++ chars, state.update_dict(&[{key, buffer}|&1])}
6969
end
7070

7171
# Look text ahead on expressions
7272

73-
defp look_ahead_text([{ :text, text }, { :middle_expr, line, _, chars }|t]=list, start, contents) do
73+
defp look_ahead_text([{:text, text}, {:middle_expr, line, _, chars}|t]=list, start, contents) do
7474
if only_spaces?(text) do
75-
{ contents ++ text ++ chars, line, t }
75+
{contents ++ text ++ chars, line, t}
7676
else
77-
{ contents, start, list }
77+
{contents, start, list}
7878
end
7979
end
8080

8181
defp look_ahead_text(t, start, contents) do
82-
{ contents, start, t }
82+
{contents, start, t}
8383
end
8484

8585
defp only_spaces?(chars) do
@@ -88,17 +88,17 @@ defmodule EEx.Compiler do
8888

8989
# Changes placeholder to real expression
9090

91-
defp insert_quotes({ :__EEX__, _, [key] }, dict) do
92-
{ ^key, value } = List.keyfind dict, key, 0
91+
defp insert_quotes({:__EEX__, _, [key]}, dict) do
92+
{^key, value} = List.keyfind dict, key, 0
9393
value
9494
end
9595

96-
defp insert_quotes({ left, line, right }, dict) do
97-
{ insert_quotes(left, dict), line, insert_quotes(right, dict) }
96+
defp insert_quotes({left, line, right}, dict) do
97+
{insert_quotes(left, dict), line, insert_quotes(right, dict)}
9898
end
9999

100-
defp insert_quotes({ left, right }, dict) do
101-
{ insert_quotes(left, dict), insert_quotes(right, dict) }
100+
defp insert_quotes({left, right}, dict) do
101+
{insert_quotes(left, dict), insert_quotes(right, dict)}
102102
end
103103

104104
defp insert_quotes(list, dict) when is_list(list) do

lib/eex/lib/eex/smart_engine.ex

+5-5
Original file line numberDiff line numberDiff line change
@@ -27,12 +27,12 @@ defmodule EEx.TransformerEngine do
2727
EEx.Engine.handle_expr(buffer, mark, transform(expr))
2828
end
2929

30-
defp transform({ a, b, c }) do
31-
{ transform(a), b, transform(c) }
30+
defp transform({a, b, c}) do
31+
{transform(a), b, transform(c)}
3232
end
3333

34-
defp transform({ a, b }) do
35-
{ transform(a), transform(b) }
34+
defp transform({a, b}) do
35+
{transform(a), transform(b)}
3636
end
3737

3838
defp transform(list) when is_list(list) do
@@ -91,7 +91,7 @@ defmodule EEx.AssignsEngine do
9191
@doc false
9292
defmacro __using__(_) do
9393
quote unquote: false do
94-
defp transform({ :@, line, [{ name, _, atom }] }) when is_atom(name) and is_atom(atom) do
94+
defp transform({:@, line, [{name, _, atom}]}) when is_atom(name) and is_atom(atom) do
9595
quote do: Dict.get(var!(assigns), unquote(name))
9696
end
9797

lib/eex/lib/eex/tokenizer.ex

+18-18
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@ defmodule EEx.Tokenizer do
55
Tokenizes the given char list or binary.
66
It returns 4 different types of tokens as result:
77
8-
* { :text, contents }
9-
* { :expr, line, marker, contents }
10-
* { :start_expr, line, marker, contents }
11-
* { :middle_expr, line, marker, contents }
12-
* { :end_expr, line, marker, contents }
8+
* {:text, contents}
9+
* {:expr, line, marker, contents}
10+
* {:start_expr, line, marker, contents}
11+
* {:middle_expr, line, marker, contents}
12+
* {:end_expr, line, marker, contents}
1313
1414
"""
1515
def tokenize(bin, line) when is_binary(bin) do
@@ -21,22 +21,22 @@ defmodule EEx.Tokenizer do
2121
end
2222

2323
defp tokenize('<%%' ++ t, line, buffer, acc) do
24-
{ buffer, new_line, rest } = tokenize_expr t, line, [?%, ?<|buffer]
24+
{buffer, new_line, rest} = tokenize_expr t, line, [?%, ?<|buffer]
2525
tokenize rest, new_line, [?>, ?%|buffer], acc
2626
end
2727

2828
defp tokenize('<%#' ++ t, line, buffer, acc) do
29-
{ _, new_line, rest } = tokenize_expr t, line, []
29+
{_, new_line, rest} = tokenize_expr t, line, []
3030
tokenize rest, new_line, buffer, acc
3131
end
3232

3333
defp tokenize('<%' ++ t, line, buffer, acc) do
34-
{ marker, t } = retrieve_marker(t)
35-
{ expr, new_line, rest } = tokenize_expr t, line, []
34+
{marker, t} = retrieve_marker(t)
35+
{expr, new_line, rest} = tokenize_expr t, line, []
3636

3737
token = token_name(expr)
3838
acc = tokenize_text(buffer, acc)
39-
final = { token, line, marker, Enum.reverse(expr) }
39+
final = {token, line, marker, Enum.reverse(expr)}
4040
tokenize rest, new_line, [], [final | acc]
4141
end
4242

@@ -55,17 +55,17 @@ defmodule EEx.Tokenizer do
5555
# Retrieve marker for <%
5656

5757
defp retrieve_marker('=' ++ t) do
58-
{ "=", t }
58+
{"=", t}
5959
end
6060

6161
defp retrieve_marker(t) do
62-
{ "", t }
62+
{"", t}
6363
end
6464

6565
# Tokenize an expression until we find %>
6666

6767
defp tokenize_expr([?%, ?>|t], line, buffer) do
68-
{ buffer, line, t }
68+
{buffer, line, t}
6969
end
7070

7171
defp tokenize_expr('\n' ++ t, line, buffer) do
@@ -104,7 +104,7 @@ defmodule EEx.Tokenizer do
104104
# token and, if so, it is not followed by an "end"
105105
# token. If this is the case, we are on a start expr.
106106
case :elixir_tokenizer.tokenize(rest, 1, file: "eex", check_terminators: false) do
107-
{ :ok, _line, tokens } ->
107+
{:ok, _line, tokens} ->
108108
tokens = Enum.reverse(tokens)
109109
fn_index = fn_index(tokens)
110110

@@ -130,14 +130,14 @@ defmodule EEx.Tokenizer do
130130

131131
defp fn_index(tokens) do
132132
Enum.find_index tokens, fn
133-
{ :fn_paren, _ } -> true
134-
{ :fn, _ } -> true
133+
{:fn_paren, _} -> true
134+
{:fn, _} -> true
135135
_ -> false
136136
end
137137
end
138138

139139
defp end_index(tokens) do
140-
Enum.find_index(tokens, &match?({ :end, _ }, &1)) || :infinity
140+
Enum.find_index(tokens, &match?({:end, _}, &1)) || :infinity
141141
end
142142

143143
defp check_spaces(string, token) do
@@ -156,6 +156,6 @@ defmodule EEx.Tokenizer do
156156
end
157157

158158
defp tokenize_text(buffer, acc) do
159-
[{ :text, Enum.reverse(buffer) } | acc]
159+
[{:text, Enum.reverse(buffer)} | acc]
160160
end
161161
end

lib/eex/test/eex/tokenizer_test.exs

+26-26
Original file line numberDiff line numberDiff line change
@@ -5,23 +5,23 @@ defmodule EEx.TokenizerTest do
55
require EEx.Tokenizer, as: T
66

77
test "simple chars lists" do
8-
assert T.tokenize('foo', 1) == [ { :text, 'foo' } ]
8+
assert T.tokenize('foo', 1) == [ {:text, 'foo'} ]
99
end
1010

1111
test "simple strings" do
12-
assert T.tokenize("foo", 1) == [ { :text, 'foo' } ]
12+
assert T.tokenize("foo", 1) == [ {:text, 'foo'} ]
1313
end
1414

1515
test "strings with embedded code" do
16-
assert T.tokenize('foo <% bar %>', 1) == [ { :text, 'foo ' }, { :expr, 1, "", ' bar ' } ]
16+
assert T.tokenize('foo <% bar %>', 1) == [ {:text, 'foo '}, {:expr, 1, "", ' bar '} ]
1717
end
1818

1919
test "strings with embedded equals code" do
20-
assert T.tokenize('foo <%= bar %>', 1) == [ { :text, 'foo ' }, { :expr, 1, "=", ' bar ' } ]
20+
assert T.tokenize('foo <%= bar %>', 1) == [ {:text, 'foo '}, {:expr, 1, "=", ' bar '} ]
2121
end
2222

2323
test "strings with more than one line" do
24-
assert T.tokenize('foo\n<%= bar %>', 1) == [ { :text, 'foo\n' }, { :expr, 2, "=", ' bar ' } ]
24+
assert T.tokenize('foo\n<%= bar %>', 1) == [ {:text, 'foo\n'}, {:expr, 2, "=", ' bar '} ]
2525
end
2626

2727
test "strings with more than one line and expression with more than one line" do
@@ -43,57 +43,57 @@ baz %>
4343

4444
test "quotation" do
4545
assert T.tokenize('foo <%% true %>', 1) == [
46-
{ :text, 'foo <% true %>' }
46+
{:text, 'foo <% true %>'}
4747
]
4848
end
4949

5050
test "quotation with do/end" do
5151
assert T.tokenize('foo <%% true do %>bar<%% end %>', 1) == [
52-
{ :text, 'foo <% true do %>bar<% end %>' }
52+
{:text, 'foo <% true do %>bar<% end %>'}
5353
]
5454
end
5555

5656
test "comments" do
5757
assert T.tokenize('foo <%# true %>', 1) == [
58-
{ :text, 'foo ' }
58+
{:text, 'foo '}
5959
]
6060
end
6161

6262
test "comments with do/end" do
6363
assert T.tokenize('foo <%# true do %>bar<%# end %>', 1) == [
64-
{ :text, 'foo bar' }
64+
{:text, 'foo bar'}
6565
]
6666
end
6767

6868
test "strings with embedded do end" do
6969
assert T.tokenize('foo <% if true do %>bar<% end %>', 1) == [
70-
{ :text, 'foo ' },
71-
{ :start_expr, 1, "", ' if true do ' },
72-
{ :text, 'bar' },
73-
{ :end_expr, 1, "", ' end ' }
70+
{:text, 'foo '},
71+
{:start_expr, 1, "", ' if true do '},
72+
{:text, 'bar'},
73+
{:end_expr, 1, "", ' end '}
7474
]
7575
end
7676

7777
test "strings with embedded -> end" do
7878
assert T.tokenize('foo <% cond do %><% false -> %>bar<% true -> %>baz<% end %>', 1) == [
79-
{ :text, 'foo ' },
80-
{ :start_expr, 1, "", ' cond do ' },
81-
{ :middle_expr, 1, "", ' false -> ' },
82-
{ :text, 'bar' },
83-
{ :middle_expr, 1, "", ' true -> ' },
84-
{ :text, 'baz' },
85-
{ :end_expr, 1, "", ' end ' }
79+
{:text, 'foo '},
80+
{:start_expr, 1, "", ' cond do '},
81+
{:middle_expr, 1, "", ' false -> '},
82+
{:text, 'bar'},
83+
{:middle_expr, 1, "", ' true -> '},
84+
{:text, 'baz'},
85+
{:end_expr, 1, "", ' end '}
8686
]
8787
end
8888

8989
test "strings with embedded keywords blocks" do
9090
assert T.tokenize('foo <% if true do %>bar<% else %>baz<% end %>', 1) == [
91-
{ :text, 'foo ' },
92-
{ :start_expr, 1, "", ' if true do ' },
93-
{ :text, 'bar' },
94-
{ :middle_expr, 1, "", ' else ' },
95-
{ :text, 'baz' },
96-
{ :end_expr, 1, "", ' end ' }
91+
{:text, 'foo '},
92+
{:start_expr, 1, "", ' if true do '},
93+
{:text, 'bar'},
94+
{:middle_expr, 1, "", ' else '},
95+
{:text, 'baz'},
96+
{:end_expr, 1, "", ' end '}
9797
]
9898
end
9999

0 commit comments

Comments
 (0)