Revert "interpreter: Fix holder_map not being updated when subproject fails"

This reverts commit 566383c727219fc20cf1c90c0fe7dae4bcac5c96.
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index b527115..42e9b70 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -222,6 +222,7 @@
                 subproject: str = '',
                 subdir: str = '',
                 subproject_dir: str = 'subprojects',
+                modules: T.Optional[T.Dict[str, T.Union[ExtensionModule, NewExtensionModule, NotFoundExtensionModule]]] = None,
                 default_project_options: T.Optional[T.Dict[str, str]] = None,
                 mock: bool = False,
                 ast: T.Optional[mparser.CodeBlockNode] = None,
@@ -234,7 +235,10 @@
         self.coredata = self.environment.get_coredata()
         self.backend = backend
         self.summary = {}
-        self.modules = {}
+        if modules is None:
+            self.modules = {}
+        else:
+            self.modules = modules
         # Subproject directory is usually the name of the subproject, but can
         # be different for dependencies provided by wrap files.
         self.subproject_directory_name = subdir.split(os.path.sep)[-1]
@@ -817,10 +821,7 @@
         with mlog.nested(subp_name):
             new_build = self.build.copy()
             subi = Interpreter(new_build, self.backend, subp_name, subdir, self.subproject_dir,
-                               default_options, ast=ast, is_translated=is_translated)
-            # Those lists are shared by all interpreters. That means that
-            # even if the subproject fails, any modification that the subproject
-            # made to those lists will affect the parent project.
+                               self.modules, default_options, ast=ast, is_translated=is_translated)
             subi.subprojects = self.subprojects
             subi.modules = self.modules
             subi.holder_map = self.holder_map
diff --git a/test cases/python/6 failing subproject/meson.build b/test cases/python/6 failing subproject/meson.build
deleted file mode 100644
index cc33a1c..0000000
--- a/test cases/python/6 failing subproject/meson.build
+++ /dev/null
@@ -1,5 +0,0 @@
-project('foo', 'cpp')
-
-# Regression test for https://github.com/mesonbuild/meson/issues/9038
-dependency('bar', required: false, allow_fallback: true)
-python = import('python').find_installation('python3').dependency()
diff --git a/test cases/python/6 failing subproject/subprojects/bar/meson.build b/test cases/python/6 failing subproject/subprojects/bar/meson.build
deleted file mode 100644
index 21431ca..0000000
--- a/test cases/python/6 failing subproject/subprojects/bar/meson.build
+++ /dev/null
@@ -1,4 +0,0 @@
-project('bar', 'cpp')
-
-python = import('python').find_installation('python3')
-dependency('nonexistant-dependency')