aboutsummaryrefslogtreecommitdiffstats
path: root/lib/compiler/src/cerl_clauses.erl
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2010-04-01 05:34:09 +0000
committerErlang/OTP <[email protected]>2010-04-01 05:34:09 +0000
commit263643a357e7a11724c599045ca35ba9aef2438c (patch)
tree659f70100c5d868b827ff13ee924bf7d8ba9e590 /lib/compiler/src/cerl_clauses.erl
parent943ad16fa4b6335b6e170cc94fc7df9041ff4e47 (diff)
parentf958b8bdbc63c5cbc60502047a4fab548fe9fd89 (diff)
downloadotp-263643a357e7a11724c599045ca35ba9aef2438c.tar.gz
otp-263643a357e7a11724c599045ca35ba9aef2438c.tar.bz2
otp-263643a357e7a11724c599045ca35ba9aef2438c.zip
Merge branch 'bg/compiler-inliner' into dev
* bg/compiler-inliner: pmod_SUITE: Again test inlining parameterized modules compiler tests: Cope with missing args in function_clause for native code compiler tests: Compile a few more modules with 'inline' Consistently rewrite an inlined function_clause exception to case_clause compiler tests: Test the 'inline' option better compiler: Suppress bs_context_to_binary/1 for a literal operand compiler: Fix binary matching bug in the inliner sys_core_inline: Don't generated multiple compiler_generated annos OTP-8552 bg/compiler-inliner Several problems in the inliner have been fixed.
Diffstat (limited to 'lib/compiler/src/cerl_clauses.erl')
-rw-r--r--lib/compiler/src/cerl_clauses.erl25
1 files changed, 17 insertions, 8 deletions
diff --git a/lib/compiler/src/cerl_clauses.erl b/lib/compiler/src/cerl_clauses.erl
index 5f111a5e05..99fa8dd9d5 100644
--- a/lib/compiler/src/cerl_clauses.erl
+++ b/lib/compiler/src/cerl_clauses.erl
@@ -1,19 +1,19 @@
%%
%% %CopyrightBegin%
-%%
-%% Copyright Ericsson AB 2001-2009. All Rights Reserved.
-%%
+%%
+%% Copyright Ericsson AB 2001-2010. All Rights Reserved.
+%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
%% compliance with the License. You should have received a copy of the
%% Erlang Public License along with this software. If not, it can be
%% retrieved online at http://www.erlang.org/.
-%%
+%%
%% Software distributed under the License is distributed on an "AS IS"
%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
%% the License for the specific language governing rights and limitations
%% under the License.
-%%
+%%
%% %CopyrightEnd%
%% @doc Utility functions for Core Erlang case/receive clauses.
@@ -338,10 +338,19 @@ match(P, E, Bs) ->
if E =:= any ->
{false, Bs};
true ->
- case is_data(E) of
- true ->
+ case type(E) of
+ literal ->
+ case is_bitstring(concrete(E)) of
+ false ->
+ none;
+ true ->
+ {false, Bs}
+ end;
+ cons ->
+ none;
+ tuple ->
none;
- false ->
+ _ ->
{false, Bs}
end
end;