aboutsummaryrefslogtreecommitdiff
path: root/mesonbuild/interpreterbase
diff options
context:
space:
mode:
Diffstat (limited to 'mesonbuild/interpreterbase')
-rw-r--r--mesonbuild/interpreterbase/__init__.py2
-rw-r--r--mesonbuild/interpreterbase/baseobjects.py7
-rw-r--r--mesonbuild/interpreterbase/disabler.py4
3 files changed, 9 insertions, 4 deletions
diff --git a/mesonbuild/interpreterbase/__init__.py b/mesonbuild/interpreterbase/__init__.py
index d5ef367..1d5c75f 100644
--- a/mesonbuild/interpreterbase/__init__.py
+++ b/mesonbuild/interpreterbase/__init__.py
@@ -14,6 +14,7 @@
__all__ = [
'InterpreterObject',
+ 'MesonInterpreterObject',
'ObjectHolder',
'RangeHolder',
'MesonVersionString',
@@ -64,6 +65,7 @@ __all__ = [
from .baseobjects import (
InterpreterObject,
+ MesonInterpreterObject,
ObjectHolder,
RangeHolder,
MutableInterpreterObject,
diff --git a/mesonbuild/interpreterbase/baseobjects.py b/mesonbuild/interpreterbase/baseobjects.py
index 3e3963f..511a146 100644
--- a/mesonbuild/interpreterbase/baseobjects.py
+++ b/mesonbuild/interpreterbase/baseobjects.py
@@ -51,12 +51,15 @@ class InterpreterObject:
return method(args, kwargs)
raise InvalidCode('Unknown method "%s" in object.' % method_name)
+class MesonInterpreterObject(InterpreterObject):
+ ''' All non-elementary objects should be derived from this '''
+
class MutableInterpreterObject:
''' Dummy class to mark the object type as mutable '''
TV_InterpreterObject = T.TypeVar('TV_InterpreterObject')
-class ObjectHolder(InterpreterObject, T.Generic[TV_InterpreterObject]):
+class ObjectHolder(MesonInterpreterObject, T.Generic[TV_InterpreterObject]):
def __init__(self, obj: TV_InterpreterObject, *, subproject: T.Optional[str] = None) -> None:
super().__init__(subproject=subproject)
self.held_object = obj
@@ -64,7 +67,7 @@ class ObjectHolder(InterpreterObject, T.Generic[TV_InterpreterObject]):
def __repr__(self) -> str:
return f'<Holder: {self.held_object!r}>'
-class RangeHolder(InterpreterObject):
+class RangeHolder(MesonInterpreterObject):
def __init__(self, start: int, stop: int, step: int, *, subproject: T.Optional[str] = None) -> None:
super().__init__(subproject=subproject)
self.range = range(start, stop, step)
diff --git a/mesonbuild/interpreterbase/disabler.py b/mesonbuild/interpreterbase/disabler.py
index 50bc5bb..81f5264 100644
--- a/mesonbuild/interpreterbase/disabler.py
+++ b/mesonbuild/interpreterbase/disabler.py
@@ -12,10 +12,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-from .baseobjects import InterpreterObject
+from .baseobjects import MesonInterpreterObject
import typing as T
-class Disabler(InterpreterObject):
+class Disabler(MesonInterpreterObject):
def __init__(self) -> None:
super().__init__()
self.methods.update({'found': self.found_method})