Actually fix base option default values.
diff --git a/mesonbuild/interpreter/interpreter.py b/mesonbuild/interpreter/interpreter.py
index 0b16266..b0bda85 100644
--- a/mesonbuild/interpreter/interpreter.py
+++ b/mesonbuild/interpreter/interpreter.py
@@ -1081,12 +1081,13 @@
             raise InterpreterException(f'Invalid option name {optname!r}')
 
         try:
-            value_object, value = self.coredata.optstore.get_option_from_meson_file(options.OptionKey(optname, self.subproject))
+            optkey = options.OptionKey(optname, self.subproject)
+            value_object, value = self.coredata.optstore.get_option_from_meson_file(optkey)
         except KeyError:
-            if self.coredata.optstore.is_base_option(optname):
+            if self.coredata.optstore.is_base_option(optkey):
                 # Due to backwards compatibility return the default
                 # option for base options instead of erroring out.
-                value_object, value = self.get_default_for_b_option(optname)
+                return self.coredata.optstore.get_default_for_b_option(optname)
             else:
                 if self.subproject:
                     raise MesonException(f'Option {optname} does not exist for subproject {self.subproject}.')
diff --git a/mesonbuild/options.py b/mesonbuild/options.py
index 79ba30b..0bb32b7 100644
--- a/mesonbuild/options.py
+++ b/mesonbuild/options.py
@@ -1100,12 +1100,12 @@
         (value_object, value) = self.get_value_object_and_value_for(key)
         return (value_object, value)
 
-    def get_default_for_b_option(self, keyname: str) -> T.Tuple[AnyOptionType, OptionValueType]:
+    def get_default_for_b_option(self, keyname: str) -> ElementaryOptionValues:
         assert keyname.startswith('b_')
         from .compilers.compilers import BASE_OPTIONS
         for bkey, bvalue in BASE_OPTIONS.items():
             if bkey.name == keyname:
-                return (T.cast('AnyOptionType', bvalue), bvalue.default)
+                return T.cast('ElementaryOptionValues', bvalue.default)
         raise MesonBugException(f'Requested base option {keyname} which does not exist.')
 
     def remove(self, key: OptionKey) -> None: