summaryrefslogtreecommitdiff
path: root/lib/syntax_tools/test/syntax_tools_SUITE_data/syntax_tools_test.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/syntax_tools/test/syntax_tools_SUITE_data/syntax_tools_test.erl')
-rw-r--r--lib/syntax_tools/test/syntax_tools_SUITE_data/syntax_tools_test.erl19
1 files changed, 16 insertions, 3 deletions
diff --git a/lib/syntax_tools/test/syntax_tools_SUITE_data/syntax_tools_test.erl b/lib/syntax_tools/test/syntax_tools_SUITE_data/syntax_tools_test.erl
index dd3f88d7a8..b8a21ef0ab 100644
--- a/lib/syntax_tools/test/syntax_tools_SUITE_data/syntax_tools_test.erl
+++ b/lib/syntax_tools/test/syntax_tools_SUITE_data/syntax_tools_test.erl
@@ -6,7 +6,7 @@
-module(syntax_tools_test).
--export([foo1/0,foo2/2,foo3/0,foo4/3,foo5/1]).
+-export([foo1/0,foo2/2,foo3/0,foo4/3,foo5/1,foo6/2]).
-include_lib("kernel/include/file.hrl").
-record(state, { a, b, c, d}).
@@ -24,6 +24,7 @@
-define(macro_string, "hello world").
-define(macro_argument1(X), (X + 3)).
-define(macro_argument2(X,Y), (X + 3 * Y)).
+-define(macro_argument3(X), {error, X}).
-define(macro_block(X), begin X end).
-define(macro_if(X1,X2), if X1 -> X2; true -> none end).
@@ -48,8 +49,7 @@ foo1() ->
%% macro test
foo2(A,B) ->
% string combining ?
- [?macro_string, ?macro_string
- ?macro_string,
+ [?macro_string, ?macro_string ++
"hello world "
"more hello",
[?macro_simple1,
@@ -113,3 +113,16 @@ foo5(A) ->
error:?macro_simple5 ->
nope
end.
+
+%% macros in patterns
+foo6(?MACRO_SIMPLE2, ?macro_argument3(A)) ->
+ try foo2(A,A) of
+ R -> R
+ catch
+ ?macro_argument3(B) ->
+ B;
+ error:?macro_argument3(B) ->
+ B;
+ error:?macro_argument3(B):_ ->
+ B
+ end.