File 3682-core_scan-Eliminate-old-style-catches.patch of Package erlang
From c06f67c8d0e91ba7b1986b3b40bb25b81c8e5196 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Bj=C3=B6rn=20Gustavsson?= <bjorn@erlang.org>
Date: Wed, 29 Jan 2025 09:41:07 +0100
Subject: [PATCH 2/7] core_scan: Eliminate old-style catches
---
lib/compiler/src/core_scan.erl | 44 +++++++++++++++++++---------------
1 file changed, 25 insertions(+), 19 deletions(-)
diff --git a/lib/compiler/src/core_scan.erl b/lib/compiler/src/core_scan.erl
index 1b88d7bed8..b24efc6fb7 100644
--- a/lib/compiler/src/core_scan.erl
+++ b/lib/compiler/src/core_scan.erl
@@ -48,8 +48,6 @@
-module(core_scan).
-moduledoc false.
--compile(nowarn_deprecated_catch).
-
-export([string/1, string/2, format_error/1]).
-import(lists, [reverse/1]).
@@ -297,7 +295,7 @@ scan1([$$|Cs0], Toks, Pos) -> %Character constant
scan1([$'|Cs0], Toks, Pos) -> %Atom (always quoted)
{S,Cs1,Pos1} = scan_string(Cs0, $', Pos),
try binary_to_atom(list_to_binary(S), utf8) of
- A when is_atom(A) ->
+ A ->
scan1(Cs1, [{atom,Pos,A}|Toks], Pos1)
catch
error:_ ->
@@ -327,18 +325,22 @@ scan1([], Toks0, _) ->
scan_key_word(C, Cs0, Toks, Pos) ->
{Wcs,Cs} = scan_name(Cs0, []),
- case catch list_to_atom([C|reverse(Wcs)]) of
- Name when is_atom(Name) ->
- scan1(Cs, [{Name,Pos}|Toks], Pos);
- _Error -> scan_error({illegal,atom}, Pos)
+ try list_to_atom([C|reverse(Wcs)]) of
+ Name ->
+ scan1(Cs, [{Name,Pos}|Toks], Pos)
+ catch
+ _:_ ->
+ scan_error({illegal,atom}, Pos)
end.
scan_variable(C, Cs0, Toks, Pos) ->
{Wcs,Cs} = scan_name(Cs0, []),
- case catch list_to_atom([C|reverse(Wcs)]) of
- Name when is_atom(Name) ->
- scan1(Cs, [{var,Pos,Name}|Toks], Pos);
- _Error -> scan_error({illegal,var}, Pos)
+ try list_to_atom([C|reverse(Wcs)]) of
+ Name ->
+ scan1(Cs, [{var,Pos,Name}|Toks], Pos)
+ catch
+ _:_ ->
+ scan_error({illegal,var}, Pos)
end.
%% scan_name(Cs) -> lists:splitwith(fun (C) -> name_char(C) end, Cs).
@@ -490,10 +492,12 @@ scan_after_fraction([$E|Cs], Ncs, Toks, SPos, CPos) ->
scan_after_fraction([$e|Cs], Ncs, Toks, SPos, CPos) ->
scan_exponent(Cs, [$E|Ncs], Toks, SPos, CPos);
scan_after_fraction(Cs, Ncs, Toks, SPos, CPos) ->
- case catch list_to_float(reverse(Ncs)) of
- N when is_float(N) ->
- scan1(Cs, [{float,SPos,N}|Toks], CPos);
- _Error -> scan_error({illegal,float}, SPos)
+ try list_to_float(reverse(Ncs)) of
+ N ->
+ scan1(Cs, [{float,SPos,N}|Toks], CPos)
+ catch
+ _:_ ->
+ scan_error({illegal,float}, SPos)
end.
%% scan_exponent(CharList, NumberCharStack, TokenStack, StartPos, CurPos)
@@ -509,10 +513,12 @@ scan_exponent(Cs, Ncs, Toks, SPos, CPos) ->
scan_exponent1([C|Cs0], Ncs0, Toks, SPos, CPos) when
is_integer(C), C >= $0, C =< $9 ->
{Ncs,Cs,CPos1} = scan_integer(Cs0, [C|Ncs0], CPos),
- case catch list_to_float(reverse(Ncs)) of
- N when is_float(N) ->
- scan1(Cs, [{float,SPos,N}|Toks], CPos1);
- _Error -> scan_error({illegal,float}, SPos)
+ try list_to_float(reverse(Ncs)) of
+ N ->
+ scan1(Cs, [{float,SPos,N}|Toks], CPos1)
+ catch
+ _:_ ->
+ scan_error({illegal,float}, SPos)
end;
scan_exponent1(_, _, _, _, CPos) ->
scan_error(float, CPos).
--
2.51.0