Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
2241-Don-t-parse-map-update-syntax-in-patterns....
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 2241-Don-t-parse-map-update-syntax-in-patterns.patch of Package erlang
From 6804aafc9b45ac73204bd8190eb6599a9045086f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C5=82=20Muska=C5=82a?= <micmus@whatsapp.com> Date: Thu, 7 Apr 2022 15:24:44 +0100 Subject: [PATCH] Don't parse map update syntax in patterns This syntax is later rejected by `erl_lint` in: * https://github.com/erlang/otp/blob/738b597ff5a9489981a71102ae90d05276e1333f/lib/stdlib/src/erl_lint.erl#L1694-L1752 * https://github.com/erlang/otp/blob/738b597ff5a9489981a71102ae90d05276e1333f/lib/stdlib/src/erl_lint.erl#L1886-L1899 This short-circuits the case where such syntax is encontered to reject it in `erl_parse` early. This simplifies `erl_parse` slighly and generates less code for it. It's also consistent with types in `erl_parse` that don't allow the 4-element `map` tuple in patterns: https://github.com/erlang/otp/blob/738b597ff5a9489981a71102ae90d05276e1333f/lib/stdlib/src/erl_parse.yrl#L834-L835 --- lib/stdlib/src/erl_parse.yrl | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib/stdlib/src/erl_parse.yrl b/lib/stdlib/src/erl_parse.yrl index 6878af8886..1fff9ea630 100644 --- a/lib/stdlib/src/erl_parse.yrl +++ b/lib/stdlib/src/erl_parse.yrl @@ -281,10 +281,6 @@ pat_expr_max -> '(' pat_expr ')' : '$2'. map_pat_expr -> '#' map_tuple : {map, ?anno('$1'),'$2'}. -map_pat_expr -> pat_expr_max '#' map_tuple : - {map, ?anno('$2'),'$1','$3'}. -map_pat_expr -> map_pat_expr '#' map_tuple : - {map, ?anno('$2'),'$1','$3'}. record_pat_expr -> '#' atom '.' atom : {record_index,?anno('$1'),element(3, '$2'),'$4'}. -- 2.34.1
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