Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
7551-Eliminate-crash-for-nested-guards-in-recor...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 7551-Eliminate-crash-for-nested-guards-in-record-initiali.patch of Package erlang
From 1b23ddb92aede36726b7715b0041e0bc96065467 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org> Date: Tue, 27 Feb 2024 13:31:19 +0100 Subject: [PATCH] Eliminate crash for nested guards in record initialization Also fix other bugs in the `erl_expand_records` pass hidden behind the original bug. Closes #8190 --- lib/stdlib/src/erl_expand_records.erl | 26 +++++--- lib/stdlib/src/erl_lint.erl | 9 +-- lib/stdlib/test/erl_expand_records_SUITE.erl | 65 ++++++++++++++++---- 3 files changed, 73 insertions(+), 27 deletions(-) diff --git a/lib/stdlib/src/erl_lint.erl b/lib/stdlib/src/erl_lint.erl index 5123a4941a..d7dfd57c63 100644 --- a/lib/stdlib/src/erl_lint.erl +++ b/lib/stdlib/src/erl_lint.erl @@ -2385,13 +2385,9 @@ is_guard_test(Expression, Forms, IsOverridden) -> %% processing the forms until we'll know that the record %% definitions are truly needed. F = fun() -> - St = foldl(fun({attribute, _, record, _}=Attr0, St0) -> - Attr = set_file(Attr0, "none"), - attribute_state(Attr, St0); - (_, St0) -> - St0 - end, start(), Forms), - St#lint.records + lists:foldl(fun({attribute, A, record, {Name, Fs}}, Acc) -> Acc#{Name => {A, Fs}}; + (_, Acc) -> Acc + end, #{}, Forms) end, is_guard_test2(NoFileExpression, {F,IsOverridden}). -- 2.35.3
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