Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Ledest:erlang:24
erlang
3561-features-Change-format-and-argument-order-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 3561-features-Change-format-and-argument-order-for-option.patch of Package erlang
From 3cd663ee027a879240795f049ac96f5e4c4de11f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cons=20T=20=C3=85hs?= <cons@erlang.org> Date: Wed, 6 Apr 2022 12:05:11 +0200 Subject: [PATCH] [features] Change format and argument order for options and directives * Use {feature, <feature>, enable|disable} in options and -compile(..) * Use -feature(<feature>, enable|disable) in module --- erts/test/lux/bad_feature_erlc.lux | 22 ++++++------- erts/test/lux/feature_erlc.lux | 32 +++++++++---------- erts/test/lux/feature_erlcold.lux | 26 +++++++-------- erts/test/lux/feature_ifnot.lux | 14 ++++---- erts/test/lux/input/enable.hrl | 2 +- erts/test/lux/input/f_bad_ifnot.erl | 2 +- erts/test/lux/input/f_directives.erl | 4 +-- erts/test/lux/input/f_directives_2.erl | 6 ++-- erts/test/lux/input/f_directives_3.erl | 4 +-- erts/test/lux/input/f_disable.erl | 6 ++-- erts/test/lux/input/f_ifnot.erl | 2 +- erts/test/lux/input/f_include_1.erl | 6 ++-- erts/test/lux/input/f_include_2.erl | 6 ++-- erts/test/lux/input/f_include_3.erl | 6 ++-- .../test/lux/input/f_incorrect_directives.erl | 4 +-- erts/test/lux/input/f_incorrect_disable.erl | 6 ++-- .../lux/input/feature_directive_maybe_ifn.erl | 4 +-- erts/test/lux/input/maybe.hrl | 2 +- lib/compiler/src/compile.erl | 2 +- lib/compiler/test/compile_SUITE.erl | 4 +-- lib/compiler/test/maybe_SUITE.erl | 2 +- lib/compiler/test/test_lib.erl | 5 +-- lib/compiler/test/warnings_SUITE.erl | 6 ++-- lib/stdlib/src/epp.erl | 4 +-- lib/stdlib/src/erl_compile.erl | 4 +-- lib/stdlib/src/erl_features.erl | 20 ++++++------ lib/stdlib/test/epp_SUITE.erl | 8 ++--- lib/stdlib/test/erl_eval_SUITE.erl | 2 +- lib/stdlib/test/erl_lint_SUITE.erl | 2 +- lib/syntax_tools/test/syntax_tools_SUITE.erl | 4 +-- lib/tools/src/cover.erl | 5 +-- lib/tools/test/cover_SUITE.erl | 2 +- 32 files changed, 113 insertions(+), 111 deletions(-) diff --git a/erts/test/lux/bad_feature_erlc.lux b/erts/test/lux/bad_feature_erlc.lux index 84afadc8ff..903696d2ce 100644 --- a/erts/test/lux/bad_feature_erlc.lux +++ b/erts/test/lux/bad_feature_erlc.lux @@ -40,17 +40,17 @@ ?SH-PROMPT: [invoke ok] - [invoke compile ignorant.erl "+'{enable_feature, ifn}'"] + [invoke compile ignorant.erl "+'{feature, ifn, enable}'"] ?the feature 'ifn' does not exist ?SH-PROMPT: [invoke notok] - [invoke compile ignorant.erl "+'{enable_feature, maybe}'"] + [invoke compile ignorant.erl "+'{feature, maybe, enable}'"] ?the feature 'maybe' does not exist ?SH-PROMPT: [invoke notok] - [invoke compile ignorant.erl "+'{enable_feature, ifn}' +'{enable_feature, maybe}'"] + [invoke compile ignorant.erl "+'{feature, ifn, enable}' +'{feature, maybe, enable}'"] # FIXME these are in the wrong order ??the features 'maybe' and 'ifn' do not exist ?SH-PROMPT: @@ -64,7 +64,7 @@ ?the feature 'ifn' does not exist [invoke notok] - [invoke compile f_ifn.erl "'+{enable_feature, maybe}'"] + [invoke compile f_ifn.erl "'+{feature, maybe, enable}'"] ?the feature 'maybe' does not exist ?SH-PROMPT: [invoke notok] @@ -74,7 +74,7 @@ ?SH-PROMPT: [invoke notok] - [invoke compile f_ifn.erl "'+{enable_feature, maybe}' '+{enable_feature, ifn}'"] + [invoke compile f_ifn.erl "'+{feature, maybe, enable}' '+{feature, ifn, enable}'"] # FIXME Fix order! ??the features 'ifn' and 'maybe' do not exist ?SH-PROMPT: @@ -90,7 +90,7 @@ ?SH-PROMPT: [invoke ok] - [invoke compile f_maybe.erl "'+{enable_feature, maybe}'"] + [invoke compile f_maybe.erl "'+{feature, maybe, enable}'"] ?the feature 'maybe' does not exist [invoke notok] @@ -98,7 +98,7 @@ ?the feature 'maybe' does not exist [invoke notok] - [invoke compile f_maybe.erl "'+{enable_feature, ifn}'"] + [invoke compile f_maybe.erl "'+{feature, ifn, enable}'"] ?the feature 'ifn' does not exist ?SH-PROMPT: [invoke notok] @@ -108,7 +108,7 @@ ?SH-PROMPT: [invoke notok] - [invoke compile f_maybe.erl "'+{enable_feature, maybe}' '+{enable_feature, ifn}'"] + [invoke compile f_maybe.erl "'+{feature, maybe, enable}' '+{feature, ifn, enable}'"] # FIXME fix order ??the features 'ifn' and 'maybe' do not exist ?SH-PROMPT: @@ -149,17 +149,17 @@ ???{ok,ignorant} ?$ERLPROMPT - [invoke erl-compile ignorant.erl [{enable_feature,ifn}]] + [invoke erl-compile ignorant.erl [{feature,ifn,enable}]] ?the feature 'ifn' does not exist ?error ?$ERLPROMPT - [invoke erl-compile ignorant.erl [{enable_feature,ifn},{enable_feature,while}]] + [invoke erl-compile ignorant.erl [{feature,ifn,enable},{feature,while,enable}]] ??the features 'ifn' and 'while' do not exist ?error ?$ERLPROMPT - [invoke erl-compile ignorant.erl [{enable_feature,unless},{enable_feature,ifn},{enable_feature,while}]] + [invoke erl-compile ignorant.erl [{feature,unless,enable},{feature,ifn,enable},{feature,while,enable}]] ??the features 'unless', 'ifn' and 'while' do not exist ?error ?$ERLPROMPT diff --git a/erts/test/lux/feature_erlc.lux b/erts/test/lux/feature_erlc.lux index 83647db856..3a033d0aad 100644 --- a/erts/test/lux/feature_erlc.lux +++ b/erts/test/lux/feature_erlc.lux @@ -40,20 +40,20 @@ ?SH-PROMPT: [invoke ok] - [invoke compile ignorant.erl "+'{enable_feature, ifn_expr}'"] + [invoke compile ignorant.erl "+'{feature, ifn_expr, enable}'"] ?syntax error before: ?syntax error before: ifn ?SH-PROMPT: [invoke notok] - [invoke compile ignorant.erl "+'{enable_feature, while_expr}'"] + [invoke compile ignorant.erl "+'{feature, while_expr, enable}'"] ?syntax error before: while ?syntax error before: while ?syntax error before: until ?SH-PROMPT: [invoke notok] - [invoke compile ignorant.erl "+'{enable_feature, ifn_expr}' +'{enable_feature, while_expr}'"] + [invoke compile ignorant.erl "+'{feature, ifn_expr, enable}' +'{feature, while_expr, enable}'"] ?syntax error before: ?syntax error before: while ?syntax error before: until @@ -65,11 +65,11 @@ ?SH-PROMPT: [invoke ok] - [invoke compile f_ifn.erl "'+{enable_feature, ifn_expr}'"] + [invoke compile f_ifn.erl "'+{feature, ifn_expr, enable}'"] ?SH-PROMPT: [invoke ok] - [invoke compile f_ifn.erl "'+{enable_feature, while_expr}'"] + [invoke compile f_ifn.erl "'+{feature, while_expr, enable}'"] [invoke syntax-error while] [invoke syntax-error until] ?SH-PROMPT: @@ -81,7 +81,7 @@ ?SH-PROMPT: [invoke notok] - [invoke compile f_ifn.erl "'+{enable_feature, while_expr}' '+{enable_feature, ifn_expr}'"] + [invoke compile f_ifn.erl "'+{feature, while_expr, enable}' '+{feature, ifn_expr, enable}'"] [invoke syntax-error while] [invoke syntax-error until] ?SH-PROMPT: @@ -97,7 +97,7 @@ ?SH-PROMPT: [invoke ok] - [invoke compile f_maybe.erl "'+{enable_feature, while_expr}'"] + [invoke compile f_maybe.erl "'+{feature, while_expr, enable}'"] ?SH-PROMPT: [invoke ok] @@ -105,7 +105,7 @@ ?SH-PROMPT: [invoke ok] - [invoke compile f_maybe.erl "'+{enable_feature, ifn_expr}'"] + [invoke compile f_maybe.erl "'+{feature, ifn_expr, enable}'"] ?syntax error before: ?SH-PROMPT: [invoke notok] @@ -115,7 +115,7 @@ ?SH-PROMPT: [invoke notok] - [invoke compile f_maybe.erl "'+{enable_feature, while_expr}' '+{enable_feature, ifn_expr}'"] + [invoke compile f_maybe.erl "'+{feature, while_expr, enable}' '+{feature, ifn_expr, enable}'"] ?syntax error before: ?SH-PROMPT: [invoke notok] @@ -129,7 +129,7 @@ ?SH-PROMPT: [invoke ok] - [invoke compile f_maybe_ifn.erl "'+{enable_feature, while_expr}'"] + [invoke compile f_maybe_ifn.erl "'+{feature, while_expr, enable}'"] ?SH-PROMPT: [invoke ok] @@ -137,7 +137,7 @@ ?SH-PROMPT: [invoke ok] - [invoke compile f_maybe_ifn.erl "'+{enable_feature, ifn_expr}'"] + [invoke compile f_maybe_ifn.erl "'+{feature, ifn_expr, enable}'"] ?SH-PROMPT: [invoke ok] @@ -145,7 +145,7 @@ ?SH-PROMPT: [invoke ok] - [invoke compile f_maybe_ifn.erl "'+{enable_feature, while_expr}' '+{enable_feature, ifn_expr}'"] + [invoke compile f_maybe_ifn.erl "'+{feature, while_expr, enable}' '+{feature, ifn_expr, enable}'"] ?SH-PROMPT: [invoke ok] @@ -158,7 +158,7 @@ ?SH-PROMPT: [invoke ok] - # This file has instances of -compile({enable_feature, ..}) inside + # This file has instances of -compile({feature, .., enable}) inside [invoke compile f_directives.erl ""] ?SH-PROMPT: [invoke ok] @@ -172,13 +172,13 @@ ???{ok,ignorant} ?$ERLPROMPT - [invoke erl-compile ignorant.erl [{enable_feature,ifn_expr}]] + [invoke erl-compile ignorant.erl [{feature,ifn_expr,enable}]] ?syntax error before: ?syntax error before: ?error ?$ERLPROMPT - [invoke erl-compile ignorant.erl [{enable_feature,ifn_expr},{enable_feature,while_expr}]] + [invoke erl-compile ignorant.erl [{feature,ifn_expr,enable},{feature,while_expr,enable}]] ?syntax error before: ?syntax error before: while ?syntax error before: until @@ -282,7 +282,7 @@ [invoke start-erl ""] - [invoke erl-compile f_macros.erl [{enable_feature,ifn_expr}]] + [invoke erl-compile f_macros.erl [{feature,ifn_expr,enable}]] ???{ok,f_macros} ?$ERLPROMPT diff --git a/erts/test/lux/feature_erlcold.lux b/erts/test/lux/feature_erlcold.lux index 82ee437b97..fa62cc85c3 100644 --- a/erts/test/lux/feature_erlcold.lux +++ b/erts/test/lux/feature_erlcold.lux @@ -20,7 +20,7 @@ [invoke ok] # Different error message when ifn is not in parser - [invoke compile feature_ignorant.erl "+'{enable_feature, ifn_expr}'"] + [invoke compile feature_ignorant.erl "+'{feature, ifn_expr, enable}'"] ?syntax error before: ?syntax error before: ifn ?SH-PROMPT: @@ -33,7 +33,7 @@ ?SH-PROMPT: [invoke notok] - [invoke compile feature_ignorant.erl "+'{enable_feature, while_expr}'"] + [invoke compile feature_ignorant.erl "+'{feature, while_expr, enable}'"] ?syntax error before: while ?syntax error before: while ?syntax error before: until @@ -48,7 +48,7 @@ [invoke notok] # Different error message when ifn not in parser - [invoke compile feature_ignorant.erl "+'{enable_feature, ifn_expr}' +'{enable_feature, while_expr}'"] + [invoke compile feature_ignorant.erl "+'{feature, ifn_expr, enable}' +'{feature, while_expr, enable}'"] ?syntax error before: ?syntax error before: while ?syntax error before: until @@ -69,7 +69,7 @@ ?SH-PROMPT: [invoke ok] - [invoke compile feature_ifn.erl "'+{enable_feature, ifn_expr}'"] + [invoke compile feature_ifn.erl "'+{feature, ifn_expr, enable}'"] ?SH-PROMPT: [invoke ok] @@ -77,7 +77,7 @@ ?SH-PROMPT: [invoke ok] - [invoke compile feature_ifn.erl "'+{enable_feature, while_expr}'"] + [invoke compile feature_ifn.erl "'+{feature, while_expr, enable}'"] [invoke syntax-error while] [invoke syntax-error until] ?SH-PROMPT: @@ -89,7 +89,7 @@ ?SH-PROMPT: [invoke notok] - [invoke compile feature_ifn.erl "'+{enable_feature, while_expr}' '+{enable_feature, ifn_expr}'"] + [invoke compile feature_ifn.erl "'+{feature, while_expr, enable}' '+{feature, ifn_expr, enable}'"] [invoke syntax-error while] [invoke syntax-error until] ?SH-PROMPT: @@ -105,18 +105,18 @@ ?SH-PROMPT: [invoke ok] - [invoke compile feature_maybe.erl "'+{enable_feature, while_expr}'"] + [invoke compile feature_maybe.erl "'+{feature, while_expr, enable}'"] ?SH-PROMPT: [invoke ok] # Different error message when ifn not in parser - [invoke compile feature_maybe.erl "'+{enable_feature, ifn_expr}'"] + [invoke compile feature_maybe.erl "'+{feature, ifn_expr, enable}'"] [invoke syntax-error ifn] ?SH-PROMPT: [invoke notok] # Different error message when ifn not in parser - [invoke compile feature_maybe.erl "'+{enable_feature, while_expr}' '+{enable_feature, ifn_expr}'"] + [invoke compile feature_maybe.erl "'+{feature, while_expr, enable}' '+{feature, ifn_expr, enable}'"] [invoke syntax-error ifn] ?SH-PROMPT: [invoke notok] @@ -125,15 +125,15 @@ ?SH-PROMPT: [invoke ok] - [invoke compile feature_maybe_ifn.erl "'+{enable_feature, while_expr}'"] + [invoke compile feature_maybe_ifn.erl "'+{feature, while_expr, enable}'"] ?SH-PROMPT: [invoke ok] - [invoke compile feature_maybe_ifn.erl "'+{enable_feature, ifn_expr}'"] + [invoke compile feature_maybe_ifn.erl "'+{feature, ifn_expr, enable}'"] ?SH-PROMPT: [invoke ok] - [invoke compile feature_maybe_ifn.erl "'+{enable_feature, while_expr}' '+{enable_feature, ifn_expr}'"] + [invoke compile feature_maybe_ifn.erl "'+{feature, while_expr, enable}' '+{feature, ifn_expr, enable}'"] ?SH-PROMPT: [invoke ok] @@ -147,7 +147,7 @@ ?$ERLPROMPT # Different error message when ifn not in parser - [invoke erl-compile feature_ignorant.erl [{enable_feature,ifn_expr}]] + [invoke erl-compile feature_ignorant.erl [{feature,ifn_expr,enable}]] ?syntax error before: ifn ?syntax error before: ifn ?error diff --git a/erts/test/lux/feature_ifnot.lux b/erts/test/lux/feature_ifnot.lux index fc3b332816..cfd99e1881 100644 --- a/erts/test/lux/feature_ifnot.lux +++ b/erts/test/lux/feature_ifnot.lux @@ -122,7 +122,7 @@ ?$ERLPROMPT # Moved from feature_erlcold.lux as ifn is no longer present in parser - [invoke compile feature_ignorant.erl "+'{enable_feature, ifn_expr}'"] + [invoke compile feature_ignorant.erl "+'{feature, ifn_expr, enable}'"] ?syntax error before: ',' ?syntax error before: ifn ?SH-PROMPT: @@ -134,7 +134,7 @@ ?SH-PROMPT: [invoke notok] - [invoke compile feature_ignorant.erl "+'{enable_feature, ifn_expr}' +'{enable_feature, maybe_expr}'"] + [invoke compile feature_ignorant.erl "+'{feature, ifn_expr, enable}' +'{feature, maybe_expr, enable}'"] ?syntax error before: ',' ?syntax error before: maybe ?syntax error before: else @@ -150,23 +150,23 @@ ?SH-PROMPT: [invoke notok] - [invoke compile feature_maybe.erl "'+{enable_feature, ifn_expr}'"] + [invoke compile feature_maybe.erl "'+{feature, ifn_expr, enable}'"] [invoke syntax-error ','] ?SH-PROMPT: [invoke notok] - [invoke compile feature_maybe.erl "'+{enable_feature, maybe_expr}' '+{enable_feature, ifn_expr}'"] + [invoke compile feature_maybe.erl "'+{feature, maybe_expr, enable}' '+{feature, ifn_expr, enable}'"] [invoke syntax-error ','] ?SH-PROMPT: [invoke notok] - # This file has instances of -compile({enable_feature, ..}) inside + # This file has instances of -compile({feature, .., enable}) inside [invoke compile feature_directive_maybe_ifn.erl "-enable-feature ifn_expr"] ?SH-PROMPT: [invoke ok] [shell erl] - [invoke erl-compile feature_ignorant.erl [{enable_feature,ifn_expr}]] + [invoke erl-compile feature_ignorant.erl [{feature,ifn_expr,enable}]] ?syntax error before: ',' ?syntax error before: ifn ?error @@ -178,7 +178,7 @@ ?SH-PROMPT: !export ERLC_USE_SERVER=$erlcserver ?SH-PROMPT: - # This file has instances of -compile({enable_feature, ..}) inside + # This file has instances of -compile({feature, .., enable}) inside [invoke compile feature_directive_maybe_ifn.erl "-enable-feature ifn_expr"] ?SH-PROMPT: [invoke ok] diff --git a/erts/test/lux/input/enable.hrl b/erts/test/lux/input/enable.hrl index d8eb0f1fc7..9835829d08 100644 --- a/erts/test/lux/input/enable.hrl +++ b/erts/test/lux/input/enable.hrl @@ -1 +1 @@ --feature(enable, maybe_expr). +-feature(maybe_expr, enable). diff --git a/erts/test/lux/input/f_bad_ifnot.erl b/erts/test/lux/input/f_bad_ifnot.erl index e4c50f4303..f37b972904 100644 --- a/erts/test/lux/input/f_bad_ifnot.erl +++ b/erts/test/lux/input/f_bad_ifnot.erl @@ -20,7 +20,7 @@ -module(f_bad_ifnot). --feature(enable, ifnot_expr). +-feature(ifnot_expr, enable). -export([f3/0]). diff --git a/erts/test/lux/input/f_directives.erl b/erts/test/lux/input/f_directives.erl index 47ee210fd1..308eb45916 100644 --- a/erts/test/lux/input/f_directives.erl +++ b/erts/test/lux/input/f_directives.erl @@ -23,8 +23,8 @@ %% This module uses both features ifn_expr and maybe_expr, so atoms %% belonging to these need t be quoted. --feature(enable, ifn_expr). --feature(enable, while_expr). +-feature(ifn_expr, enable). +-feature(while_expr, enable). -export([bar/0 ]). diff --git a/erts/test/lux/input/f_directives_2.erl b/erts/test/lux/input/f_directives_2.erl index 07c93440f0..45c395a3b8 100644 --- a/erts/test/lux/input/f_directives_2.erl +++ b/erts/test/lux/input/f_directives_2.erl @@ -23,10 +23,10 @@ %% This module uses the feature ifn_expr, so atoms belonging to that %% featurfe need to be quoted. --feature(enable, while_expr). --feature(enable, ifn_expr). +-feature(while_expr, enable). +-feature(ifn_expr, enable). %% Disable feature so atoms beonging to maybe_expr can be unquoted --feature(disable, while_expr). +-feature(while_expr, disable). -export([foo/0, bar/0, diff --git a/erts/test/lux/input/f_directives_3.erl b/erts/test/lux/input/f_directives_3.erl index 279c519150..58dd1aa733 100644 --- a/erts/test/lux/input/f_directives_3.erl +++ b/erts/test/lux/input/f_directives_3.erl @@ -23,8 +23,8 @@ %% This module uses the feature ifn_expr, so atoms from that feature %% need to be quoted. --feature(enable, ifn_expr). --feature(disable, while_expr). +-feature(ifn_expr, enable). +-feature(while_expr, disable). -export([foo/0, bar/0, diff --git a/erts/test/lux/input/f_disable.erl b/erts/test/lux/input/f_disable.erl index b72dfdb550..46874d3acd 100644 --- a/erts/test/lux/input/f_disable.erl +++ b/erts/test/lux/input/f_disable.erl @@ -20,8 +20,8 @@ -module(f_disable). --feature(disable, ifn_expr). --feature(disable, while_expr). +-feature(ifn_expr, disable). +-feature(while_expr, disable). -export([no_ifn/0, no_ftrs/0]). @@ -44,7 +44,7 @@ no_ifn() -> no_ftrs() -> [ifn, while, until, ?BAR]. -%% -compile({enable_feature, ifn_expr}). +%% -compile({feature, ifn_expr, enable}). %% do(X) -> %% ifn X > 10 -> diff --git a/erts/test/lux/input/f_ifnot.erl b/erts/test/lux/input/f_ifnot.erl index bb81239e7f..c31469704f 100644 --- a/erts/test/lux/input/f_ifnot.erl +++ b/erts/test/lux/input/f_ifnot.erl @@ -20,7 +20,7 @@ -module(f_ifnot). --feature(enable, ifnot_expr). +-feature(ifnot_expr, enable). -export([f0/0, f1/0, diff --git a/erts/test/lux/input/f_include_1.erl b/erts/test/lux/input/f_include_1.erl index c8dce1e503..05d2b98d61 100644 --- a/erts/test/lux/input/f_include_1.erl +++ b/erts/test/lux/input/f_include_1.erl @@ -1,19 +1,19 @@ -module(f_include_1). --feature(enable, unless_expr). +-feature(unless_expr, enable). -ifdef(end_prefix). -record(constant, {value = 42}). -endif. -ifdef(end_include). --feature(enable, maybe_expr). +-feature(maybe_expr, enable). -endif. -include("is_enabled.hrl"). -ifdef(end_include). --feature(enable, ifnot_expr). +-feature(ifnot_expr, enable). -endif. %% At this point the prefix will definitely end, if it has not already diff --git a/erts/test/lux/input/f_include_2.erl b/erts/test/lux/input/f_include_2.erl index 209c454fc9..9bb81c196a 100644 --- a/erts/test/lux/input/f_include_2.erl +++ b/erts/test/lux/input/f_include_2.erl @@ -1,19 +1,19 @@ -module(f_include_2). --feature(enable, unless_expr). +-feature(unless_expr, enable). -ifdef(end_prefix). -record(constant, {value = 42}). -endif. -ifdef(end_include). --feature(enable, maybe_expr). +-feature(maybe_expr, enable). -endif. -include("macro_enabled.hrl"). -ifdef(end_include). --feature(enable, ifnot_expr). +-feature(ifnot_expr, enable). -endif. %% At this point the prefix will definitely end, if it has not already diff --git a/erts/test/lux/input/f_include_3.erl b/erts/test/lux/input/f_include_3.erl index dba4a78dbb..294f3eb917 100644 --- a/erts/test/lux/input/f_include_3.erl +++ b/erts/test/lux/input/f_include_3.erl @@ -1,19 +1,19 @@ -module(f_include_3). --feature(enable, unless_expr). +-feature(unless_expr, enable). -ifdef(end_prefix). -record(constant, {value = 42}). -endif. -ifdef(end_include). --feature(enable, maybe_expr). +-feature(maybe_expr, enable). -endif. -include("enable.hrl"). -ifdef(end_include). --feature(enable, ifnot_expr). +-feature(ifnot_expr, enable). -endif. %% At this point the prefix will definitely end, if it has not already diff --git a/erts/test/lux/input/f_incorrect_directives.erl b/erts/test/lux/input/f_incorrect_directives.erl index 5e9129d1a1..6af2a2aa9b 100644 --- a/erts/test/lux/input/f_incorrect_directives.erl +++ b/erts/test/lux/input/f_incorrect_directives.erl @@ -28,13 +28,13 @@ ]). %% FIXME This is out of place, but not check in any test. --feature(enable, ifn). +-feature(ifn, enable). foo() -> %% Note: maybe_expr not active here ['ifn', maybe, then, 'if']. --feature(enable, maybe). +-feature(maybe, enable). bar() -> ['then', 'maybe']. diff --git a/erts/test/lux/input/f_incorrect_disable.erl b/erts/test/lux/input/f_incorrect_disable.erl index 19f80c2e2c..53cb56b38b 100644 --- a/erts/test/lux/input/f_incorrect_disable.erl +++ b/erts/test/lux/input/f_incorrect_disable.erl @@ -22,7 +22,7 @@ -module(f_incorrect_disable). --feature(disable, unless). +-feature(unless, disable). -export([do/1, no_ifn/0, @@ -38,7 +38,7 @@ no_ifn() -> [ifn, 'maybe', ?FOO]. --feature(disable, maybe_expr). +-feature(maybe_expr, disable). -if(?FEATURE_ENABLED(maybe_expr)). -define(BAR, has_maybe). @@ -49,7 +49,7 @@ no_ifn() -> no_ftrs() -> [ifn, maybe, then, ?BAR]. --feature(enable, ifn_expr). +-feature(ifn_expr, enable). do(X) -> ifn X > 10 -> diff --git a/erts/test/lux/input/feature_directive_maybe_ifn.erl b/erts/test/lux/input/feature_directive_maybe_ifn.erl index 82f448dc1a..c1ea3d48dd 100644 --- a/erts/test/lux/input/feature_directive_maybe_ifn.erl +++ b/erts/test/lux/input/feature_directive_maybe_ifn.erl @@ -42,7 +42,7 @@ ifn_0() -> false. %% NOTE: We need to quote the feature name due to it being the same as %% the new reserved word and it might have been enabled earlier, i.e., %% from the command line or in argumemts to compile:file/.. --compile({enable_feature, 'ifn_expr'}). +-compile({feature, 'ifn_expr', enable}). %% use_ifn(X) -> %% ifn X > 0 -> @@ -67,7 +67,7 @@ maybe_0() -> maybe_0() -> false. -endif. --compile({enable_feature, 'maybe_expr'}). +-compile({feature, 'maybe_expr', enable}). -if(?FEATURE_ENABLED('maybe_expr')). maybe_1() -> diff --git a/erts/test/lux/input/maybe.hrl b/erts/test/lux/input/maybe.hrl index ffa665f0eb..5ea653e511 100644 --- a/erts/test/lux/input/maybe.hrl +++ b/erts/test/lux/input/maybe.hrl @@ -1,5 +1,5 @@ -if(?enable_maybe > 0). --feature(enable, while_expr). +-feature(while_expr, enable). -record(conditional, {on=off, 'until'=none}). -else. -record(conditional, {on=on, until=until}). diff --git a/lib/compiler/src/compile.erl b/lib/compiler/src/compile.erl index 4e80779479..54b1cd3141 100644 --- a/lib/compiler/src/compile.erl +++ b/lib/compiler/src/compile.erl @@ -1032,7 +1032,7 @@ do_parse_module(DefEncoding, #compile{ifile=File,options=Opts,dir=Dir}=St) -> Encoding = proplists:get_value(encoding, Extra), %% Get features used in the module, indicated by %% enabling features with - %% -compile({enable_feature, ..}). + %% -compile({feature, .., enable}). UsedFtrs = proplists:get_value(features, Extra), St1 = metadata_add_features(UsedFtrs, St), Forms = case with_columns(Opts ++ compile_options(Forms0)) of diff --git a/lib/compiler/test/compile_SUITE.erl b/lib/compiler/test/compile_SUITE.erl index 8e7a97d58c..8cf14ab671 100644 --- a/lib/compiler/test/compile_SUITE.erl +++ b/lib/compiler/test/compile_SUITE.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 1997-2021. All Rights Reserved. +%% Copyright Ericsson AB 1997-2022. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. @@ -1450,7 +1450,7 @@ warnings(_Config) -> test_lib:p_run(fun do_warnings/1, Files). do_warnings(F) -> - Options = [{enable_feature,maybe_expr},binary,bin_opt_info,recv_opt_info,return], + Options = [{feature,maybe_expr,enable},binary,bin_opt_info,recv_opt_info,return], {ok,_,_,Ws} = compile:file(F, Options), do_warnings_1(Ws, F). diff --git a/lib/compiler/test/maybe_SUITE.erl b/lib/compiler/test/maybe_SUITE.erl index 905bc33584..6c6e21f547 100644 --- a/lib/compiler/test/maybe_SUITE.erl +++ b/lib/compiler/test/maybe_SUITE.erl @@ -24,7 +24,7 @@ %% Note: also require the feature to be set during runtime as long as %% the feature is experimental. This is currently done in ../Makefile %% by overriding the test target. Ugly and very non local. --feature(enable, maybe_expr). +-feature(maybe_expr, enable). -export([all/0, groups/0, init_per_suite/1, end_per_suite/1]). -export([basic/1, nested/1]). diff --git a/lib/compiler/test/test_lib.erl b/lib/compiler/test/test_lib.erl index 48a8a970af..4f24310d15 100644 --- a/lib/compiler/test/test_lib.erl +++ b/lib/compiler/test/test_lib.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2003-2021. All Rights Reserved. +%% Copyright Ericsson AB 2003-2022. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. @@ -86,7 +86,8 @@ opt_opts(Mod) -> lists:filter(fun (debug_info) -> true; (dialyzer) -> true; - ({enable_feature,_}) -> true; + ({feature,_,enable}) -> true; + ({feature,_,disable}) -> true; (inline) -> true; (no_bsm3) -> true; (no_bsm_opt) -> true; diff --git a/lib/compiler/test/warnings_SUITE.erl b/lib/compiler/test/warnings_SUITE.erl index 8ab46fed09..96cd735cdf 100644 --- a/lib/compiler/test/warnings_SUITE.erl +++ b/lib/compiler/test/warnings_SUITE.erl @@ -1177,12 +1177,12 @@ eep49(Config) -> Always end. ">>, - [{enable_feature,maybe_expr}], + [{feature,maybe_expr,enable}], []}, {disabled, <<"foo() -> maybe. %Atom maybe. ">>, - [{disable_feature,maybe_expr}], + [{feature,maybe_expr,disable}], []} ], run(Config, Ts), diff --git a/lib/stdlib/src/epp.erl b/lib/stdlib/src/epp.erl index 1c2dbcb3bb..d642b53bf4 100644 --- a/lib/stdlib/src/epp.erl +++ b/lib/stdlib/src/epp.erl @@ -1002,8 +1002,8 @@ scan_err_warn(Toks, {atom,_,Tag}=Token, From, St) -> wait_req_scan(St). %% scan a feature directive -scan_feature([{'(', _Ap}, {atom, _Am, Ind}, - {',', _}, {atom, _, Ftr}, {')', _}, {dot, _}], +scan_feature([{'(', _Ap}, {atom, _Am, Ftr}, + {',', _}, {atom, _, Ind}, {')', _}, {dot, _}], Feature, From, St) when St#epp.in_prefix, (Ind =:= enable diff --git a/lib/stdlib/src/erl_compile.erl b/lib/stdlib/src/erl_compile.erl index 87af230c67..6cb8590f13 100644 --- a/lib/stdlib/src/erl_compile.erl +++ b/lib/stdlib/src/erl_compile.erl @@ -179,12 +179,12 @@ parse_generic_option("enable-feature" ++ Str, T0, {FtrStr, T} = get_option("enable-feature", Str, T0), Feature = list_to_atom(FtrStr), compile1(T, Opts#options{ - specific = Spec ++ [{enable_feature, Feature}]}); + specific = Spec ++ [{feature, Feature, enable}]}); parse_generic_option("disable-feature" ++ Str, T0, #options{specific = Spec} = Opts) -> {FtrStr, T} = get_option("disable-feature", Str, T0), Feature = list_to_atom(FtrStr), - compile1(T, Opts#options{specific = Spec ++ [{disable_feature, Feature}]}); + compile1(T, Opts#options{specific = Spec ++ [{feature, Feature, disable}]}); parse_generic_option("describe-feature" ++ Str, T0, #options{specific = Spec} = Opts) -> {FtrStr, T} = get_option("disable-feature", Str, T0), diff --git a/lib/stdlib/src/erl_features.erl b/lib/stdlib/src/erl_features.erl index e969293a92..77ada029cb 100644 --- a/lib/stdlib/src/erl_features.erl +++ b/lib/stdlib/src/erl_features.erl @@ -188,8 +188,8 @@ keywords(Ftr, Map) -> %% | {'error', error()}. keyword_fun(Opts, KeywordFun) -> %% Get items enabling or disabling features, preserving order. - IsFtr = fun({enable_feature, _}) -> true; - ({disable_feature, _}) -> true; + IsFtr = fun({feature, _, enable}) -> true; + ({feature, _, disable}) -> true; (_) -> false end, FeatureOps = lists:filter(IsFtr, Opts), @@ -310,8 +310,8 @@ init_features() -> end, init:get_arguments()), - Cnv = fun('enable-feature') -> enable_feature; - ('disable-feature') -> disable_feature + Cnv = fun('enable-feature') -> enable; + ('disable-feature') -> disable end, FeatureOps = lists:append(lists:map(fun({Tag, Strings}) -> @@ -327,9 +327,9 @@ init_features() -> try Atom = list_to_atom(String), case is_valid_feature(Atom) of - true -> {true, {Cnv(Tag), Atom}}; + true -> {true, {feature, Atom, Cnv(Tag)}}; false when Atom == all -> - {true, {Cnv(Tag), Atom}}; + {true, {feature, Atom, Cnv(Tag)}}; false -> false end catch @@ -483,17 +483,17 @@ collect_features(FOps) -> collect_features([], Add, Del) -> {Add, Del}; -collect_features([{enable_feature, all}| FOps], Add, _Del) -> +collect_features([{feature, all, enable}| FOps], Add, _Del) -> All = features(), Add1 = lists:foldl(fun add_ftr/2, Add, All), collect_features(FOps, Add1, []); -collect_features([{enable_feature, Feature}| FOps], Add, Del) -> +collect_features([{feature, Feature, enable}| FOps], Add, Del) -> collect_features(FOps, add_ftr(Feature, Add), Del -- [Feature]); -collect_features([{disable_feature, all}| FOps], _Add, Del) -> +collect_features([{feature, all, disable}| FOps], _Add, Del) -> %% Start over All = features(), collect_features(FOps, [], Del -- All); -collect_features([{disable_feature, Feature}| FOps], Add, Del) -> +collect_features([{feature, Feature, disable}| FOps], Add, Del) -> collect_features(FOps, Add -- [Feature], add_ftr(Feature, Del)). diff --git a/lib/stdlib/test/epp_SUITE.erl b/lib/stdlib/test/epp_SUITE.erl index 3a62b79135..027d6ec42a 100644 --- a/lib/stdlib/test/epp_SUITE.erl +++ b/lib/stdlib/test/epp_SUITE.erl @@ -2018,7 +2018,7 @@ eval_tests(Config, Fun, Tests) -> Return = Fun(Config, P, Opts), %% The result should be the same when enabling maybe ... end %% (making 'else' a keyword instead of an atom). - Return = Fun(Config, P, [{enable_feature,maybe_expr}|Opts]), + Return = Fun(Config, P, [{feature,maybe_expr,enable}|Opts]), case message_compare(E, Return) of true -> case E of @@ -2041,7 +2041,7 @@ check_test(Config, Test, Opts) -> PrivDir = proplists:get_value(priv_dir, Config), File = filename:join(PrivDir, Filename), ok = file:write_file(File, Test), - case epp:parse_file(File, [PrivDir], Opts) of + case epp:parse_file(File, [{includes, PrivDir}| Opts]) of {ok,Forms} -> Errors = [E || E={error,_} <- Forms], call_format_error([E || {error,E} <- Errors]), @@ -2116,10 +2116,10 @@ run_test(Config, Test0, Opts0) -> Opts = [return, {i,PrivDir},{outdir,PrivDir}] ++ Opts0, {ok, epp_test, []} = compile:file(File, Opts), AbsFile = filename:rootname(File, ".erl"), - %% FIXME For now, use firbidden feature at rumtime + %% FIXME For now, use forbidden feature at rumtime erl_features:enable_feature(maybe_expr), {module, epp_test} = code:load_abs(AbsFile, epp_test), - %% FIXME For now, use firbidden feature at rumtime + %% FIXME For now, use forbidden feature at rumtime erl_features:disable_feature(maybe_expr), Reply = epp_test:t(), code:purge(epp_test), diff --git a/lib/stdlib/test/erl_eval_SUITE.erl b/lib/stdlib/test/erl_eval_SUITE.erl index 00a56d8a2b..faaa9f727f 100644 --- a/lib/stdlib/test/erl_eval_SUITE.erl +++ b/lib/stdlib/test/erl_eval_SUITE.erl @@ -18,7 +18,7 @@ %% %CopyrightEnd% -module(erl_eval_SUITE). --feature(enable, maybe_expr). +-feature(maybe_expr, enable). -export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, init_per_testcase/2, end_per_testcase/2, init_per_group/2,end_per_group/2]). diff --git a/lib/stdlib/test/erl_lint_SUITE.erl b/lib/stdlib/test/erl_lint_SUITE.erl index 955e5fbb40..627d61c74d 100644 --- a/lib/stdlib/test/erl_lint_SUITE.erl +++ b/lib/stdlib/test/erl_lint_SUITE.erl @@ -4727,7 +4727,7 @@ unused_type2(Config) when is_list(Config) -> %% Test maybe ... else ... end. eep49(Config) when is_list(Config) -> - EnableMaybe = {enable_feature,maybe_expr}, + EnableMaybe = {feature,maybe_expr,enable}, Ts = [{exp1, <<"t(X) -> maybe diff --git a/lib/syntax_tools/test/syntax_tools_SUITE.erl b/lib/syntax_tools/test/syntax_tools_SUITE.erl index 623e79b207..6d91ab8f54 100644 --- a/lib/syntax_tools/test/syntax_tools_SUITE.erl +++ b/lib/syntax_tools/test/syntax_tools_SUITE.erl @@ -412,7 +412,7 @@ test_prettypr([File|Files],DataDir,PrivDir) -> test_epp_dodger([], _, _) -> ok; test_epp_dodger([Filename|Files],DataDir,PrivDir) -> io:format("Parsing ~p~n", [Filename]), - Options = [{enable_feature, maybe_expr}], + Options = [{feature, maybe_expr, enable}], InFile = filename:join(DataDir, Filename), Parsers = [{fun(File) -> epp_dodger:parse_file(File, Options) end,parse_file}, {fun(File) -> epp_dodger:quick_parse_file(File, @@ -621,7 +621,7 @@ p_run_loop(Test, List, N, Refs0, Errors0) -> end. res_word_option() -> - Options = [{enable_feature, maybe_expr}], + Options = [{feature, maybe_expr, enable}], {ok, {_Ftrs, ResWordFun}} = erl_features:keyword_fun(Options, fun erl_scan:f_reserved_word/1), {reserved_word_fun, ResWordFun}. diff --git a/lib/tools/src/cover.erl b/lib/tools/src/cover.erl index 27006199d1..1f7a518dfe 100644 --- a/lib/tools/src/cover.erl +++ b/lib/tools/src/cover.erl @@ -1,7 +1,7 @@ %% %% %CopyrightBegin% %% -%% Copyright Ericsson AB 2001-2021. All Rights Reserved. +%% Copyright Ericsson AB 2001-2022. All Rights Reserved. %% %% Licensed under the Apache License, Version 2.0 (the "License"); %% you may not use this file except in compliance with the License. @@ -336,7 +336,8 @@ filter_options(Options) -> {d, _Macro, _Value} -> true; export_all -> true; tuple_calls -> true; - {enable_feature,_} -> true; %FIXME: To be removed. + {feature,_,enable} -> true; %FIXME: To be removed. + {feature,_,disable} -> true; %FIXME: To be removed. _ -> false end end, diff --git a/lib/tools/test/cover_SUITE.erl b/lib/tools/test/cover_SUITE.erl index b02b3df0b6..9977fa8763 100644 --- a/lib/tools/test/cover_SUITE.erl +++ b/lib/tools/test/cover_SUITE.erl @@ -1881,7 +1881,7 @@ eep49(Config) -> File = "t.erl", Test = <<"-module(t). - -feature(enable,maybe_expr). + -feature(maybe_expr,enable). -export([t/0]). t() -> -- 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