summaryrefslogtreecommitdiff
path: root/mesonbuild/compilers/compilers.py
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz93@gmail.com>2024-02-11 19:50:26 -0500
committerEli Schwartz <eschwartz93@gmail.com>2024-07-30 14:13:12 -0400
commita59231ff4a30f686306662e1298c69fd2459dec8 (patch)
treef0ad8d758dd252c8ebdbc32ff30da3897f630c57 /mesonbuild/compilers/compilers.py
parent4a352dd8bdb083b2d75994fe1b0ba27242a7ce61 (diff)
downloadmeson-a59231ff4a30f686306662e1298c69fd2459dec8.tar.gz
compilers: simplify CompileResult / RunResult by using dataclasses
None sentinel is replaced by field(), so we don't need to declare it Optional anymore.
Diffstat (limited to 'mesonbuild/compilers/compilers.py')
-rw-r--r--mesonbuild/compilers/compilers.py37
1 files changed, 15 insertions, 22 deletions
diff --git a/mesonbuild/compilers/compilers.py b/mesonbuild/compilers/compilers.py
index e4e5b6f34..e797cf16a 100644
--- a/mesonbuild/compilers/compilers.py
+++ b/mesonbuild/compilers/compilers.py
@@ -9,7 +9,7 @@ import contextlib, os.path, re
import enum
import itertools
import typing as T
-from dataclasses import dataclass
+from dataclasses import dataclass, field
from functools import lru_cache
from .. import mlog
@@ -406,34 +406,27 @@ def get_base_link_args(options: 'KeyedOptionDictType', linker: 'Compiler',
class CrossNoRunException(MesonException):
pass
+@dataclass
class RunResult(HoldableObject):
- def __init__(self, compiled: bool, returncode: int = 999,
- stdout: str = 'UNDEFINED', stderr: str = 'UNDEFINED',
- cached: bool = False):
- self.compiled = compiled
- self.returncode = returncode
- self.stdout = stdout
- self.stderr = stderr
- self.cached = cached
+ compiled: bool
+ returncode: int = 999
+ stdout: str = 'UNDEFINED'
+ stderr: str = 'UNDEFINED'
+ cached: bool = False
+@dataclass
class CompileResult(HoldableObject):
"""The result of Compiler.compiles (and friends)."""
- def __init__(self, stdo: T.Optional[str] = None, stde: T.Optional[str] = None,
- command: T.Optional[T.List[str]] = None,
- returncode: int = 999,
- input_name: T.Optional[str] = None,
- output_name: T.Optional[str] = None,
- cached: bool = False):
- self.stdout = stdo
- self.stderr = stde
- self.input_name = input_name
- self.output_name = output_name
- self.command = command or []
- self.cached = cached
- self.returncode = returncode
+ stdout: T.Optional[str] = None
+ stderr: T.Optional[str] = None
+ command: T.List[str] = field(default_factory=list)
+ returncode: int = 999
+ input_name: T.Optional[str] = None
+ output_name: T.Optional[str] = None
+ cached: bool = False
class Compiler(HoldableObject, metaclass=abc.ABCMeta):