diff options
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.erl | 19 |
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. |