From ba432c87a4fefcb784b9b23ac691e870735c044f Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Sun, 10 Oct 2021 07:31:49 -0400 Subject: Revert "interpreter: Add FeatureNew check" This reverts commit c0efa7ab22f8900f6fa1dadf0d306ec375569c8d. This was a nice idea, or a beautiful hack depending on your perspective. Unfortunately, it turns out to be a lot harder than we originally thought. By operating on bare nodes, we end up triggering a FeatureNew on anything that isn't a string literal, rather than anything that isn't a string. Since no one else has come up with a better idea for implementing a FeatureNew, let's just revert it. Better to not have a warning, than have it trigger way too often. --- mesonbuild/interpreter/primitives/string.py | 12 ------------ test cases/common/35 string operations/meson.build | 2 +- test cases/common/35 string operations/test.json | 7 ------- 3 files changed, 1 insertion(+), 20 deletions(-) delete mode 100644 test cases/common/35 string operations/test.json diff --git a/mesonbuild/interpreter/primitives/string.py b/mesonbuild/interpreter/primitives/string.py index aad28af01..5b295014c 100644 --- a/mesonbuild/interpreter/primitives/string.py +++ b/mesonbuild/interpreter/primitives/string.py @@ -21,11 +21,6 @@ from ...interpreterbase import ( InvalidArguments, ) -from ...mparser import ( - MethodNode, - StringNode, - ArrayNode, -) if T.TYPE_CHECKING: @@ -109,13 +104,6 @@ class StringHolder(ObjectHolder[str]): @noKwargs @typed_pos_args('str.join', varargs=str) def join_method(self, args: T.Tuple[T.List[str]], kwargs: TYPE_kwargs) -> str: - # Implement some basic FeatureNew check on the AST level - assert isinstance(self.current_node, MethodNode) - n_args = self.current_node.args.arguments - if len(n_args) != 1 or not isinstance(n_args[0], ArrayNode) or not all(isinstance(x, StringNode) for x in n_args[0].args.arguments): - FeatureNew.single_use('str.join (varargs)', '0.60.0', self.subproject, 'List-flattening and variadic arguments') - - # Actual implementation return self.held_object.join(args[0]) @noKwargs diff --git a/test cases/common/35 string operations/meson.build b/test cases/common/35 string operations/meson.build index 54eab88df..b86e13a1a 100644 --- a/test cases/common/35 string operations/meson.build +++ b/test cases/common/35 string operations/meson.build @@ -1,4 +1,4 @@ -project('string formatting', 'c', meson_version: '>=0.59.0') +project('string formatting', 'c') templ = '@0@bar@1@' diff --git a/test cases/common/35 string operations/test.json b/test cases/common/35 string operations/test.json deleted file mode 100644 index 96f965947..000000000 --- a/test cases/common/35 string operations/test.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "stdout": [ - { - "line": "WARNING: Project targeting '>=0.59.0' but tried to use feature introduced in '0.60.0': str.join (varargs). List-flattening and variadic arguments" - } - ] -} -- cgit v1.2.3