Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:19
erlang
0847-v3_core-Handle-combined-with-a-bad-alias-i...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0847-v3_core-Handle-combined-with-a-bad-alias-in-patterns.patch of Package erlang
From f397dfadcb686aa0d528d69ed8205d3d6490cd8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org> Date: Wed, 5 Feb 2020 12:42:49 +0100 Subject: [PATCH 11/13] v3_core: Handle ++ combined with a bad alias in patterns --- lib/compiler/src/v3_core.erl | 2 ++ lib/compiler/test/match_SUITE.erl | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/lib/compiler/src/v3_core.erl b/lib/compiler/src/v3_core.erl index 1466e24104..36aa0a3667 100644 --- a/lib/compiler/src/v3_core.erl +++ b/lib/compiler/src/v3_core.erl @@ -841,6 +841,8 @@ sanitize({tuple,L,Ps0}) -> sanitize({map,L,Ps0}) -> Ps = [sanitize(V) || {map_field_exact,_,_,V} <- Ps0], {tuple,L,Ps}; +sanitize({op,L,_Name,P1,P2}) -> + {tuple,L,[sanitize(P1),sanitize(P2)]}; sanitize(P) -> P. make_bool_switch(L, E, V, T, F, #core{in_guard=true}) -> diff --git a/lib/compiler/test/match_SUITE.erl b/lib/compiler/test/match_SUITE.erl index ce467622ae..d1da114d3f 100644 --- a/lib/compiler/test/match_SUITE.erl +++ b/lib/compiler/test/match_SUITE.erl @@ -255,6 +255,7 @@ non_matching_aliases(_Config) -> none = mixed_aliases({a,42}), none = mixed_aliases(42), + {'EXIT',{{badmatch,bar},_}} = (catch plus_plus_prefix()), {'EXIT',{{badmatch,42},_}} = (catch nomatch_alias(42)), {'EXIT',{{badmatch,job},_}} = (catch entirely()), {'EXIT',{{badmatch,associates},_}} = (catch printer()), @@ -279,8 +280,12 @@ mixed_aliases([X] = #{key:=X}) -> {k,X}; mixed_aliases([b] = <<X:8>>) -> {b,X}; mixed_aliases(<<X:8>> = {a,X}) -> {c,X}; mixed_aliases([X] = <<X:8>>) -> {d,X}; +mixed_aliases([] ++ (foo = [])) -> o; mixed_aliases(_) -> none. +plus_plus_prefix() -> + [] ++ (foo = []) = bar. + nomatch_alias(I) -> {ok={A,B}} = id(I), {A,B}. -- 2.16.4
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor