compilers: Add missing annotations to CompilerArgs class
This commit is contained in:
parent
b887212bee
commit
386721f7fd
|
@ -491,18 +491,18 @@ class CompilerArgs(collections.abc.MutableSequence):
|
|||
iterable: T.Optional[T.Iterable[str]] = None):
|
||||
self.compiler = compiler
|
||||
self.__container = list(iterable) if iterable is not None else [] # type: T.List[str]
|
||||
self.pre = deque()
|
||||
self.post = deque()
|
||||
self.pre = deque() # type: T.Deque[str]
|
||||
self.post = deque() # type: T.Deque[str]
|
||||
|
||||
# Flush the saved pre and post list into the __container list
|
||||
#
|
||||
# This correctly deduplicates the entries after _can_dedup definition
|
||||
# Note: This function is designed to work without delete operations, as deletions are worsening the performance a lot.
|
||||
def flush_pre_post(self):
|
||||
pre_flush = deque()
|
||||
pre_flush_set = set()
|
||||
post_flush = deque()
|
||||
post_flush_set = set()
|
||||
def flush_pre_post(self) -> None:
|
||||
pre_flush = deque() # type: T.Deque[str]
|
||||
pre_flush_set = set() # type: T.Set[str]
|
||||
post_flush = deque() # type: T.Deque[str]
|
||||
post_flush_set = set() # type: T.Set[str]
|
||||
|
||||
#The two lists are here walked from the front to the back, in order to not need removals for deduplication
|
||||
for a in self.pre:
|
||||
|
@ -529,9 +529,9 @@ class CompilerArgs(collections.abc.MutableSequence):
|
|||
self.pre.clear()
|
||||
self.post.clear()
|
||||
|
||||
def __iter__(self):
|
||||
def __iter__(self) -> T.Iterator[str]:
|
||||
self.flush_pre_post()
|
||||
return iter(self.__container);
|
||||
return iter(self.__container)
|
||||
|
||||
@T.overload # noqa: F811
|
||||
def __getitem__(self, index: int) -> str: # noqa: F811
|
||||
|
@ -615,12 +615,10 @@ class CompilerArgs(collections.abc.MutableSequence):
|
|||
|
||||
@classmethod
|
||||
@lru_cache(maxsize=None)
|
||||
def _should_prepend(cls, arg):
|
||||
if arg.startswith(cls.prepend_prefixes):
|
||||
return True
|
||||
return False
|
||||
def _should_prepend(cls, arg: str) -> bool:
|
||||
return arg.startswith(cls.prepend_prefixes)
|
||||
|
||||
def need_to_split_linker_args(self):
|
||||
def need_to_split_linker_args(self) -> bool:
|
||||
return isinstance(self.compiler, Compiler) and self.compiler.get_language() == 'd'
|
||||
|
||||
def to_native(self, copy: bool = False) -> T.List[str]:
|
||||
|
@ -726,7 +724,7 @@ class CompilerArgs(collections.abc.MutableSequence):
|
|||
Add two CompilerArgs while taking into account overriding of arguments
|
||||
and while preserving the order of arguments as much as possible
|
||||
'''
|
||||
tmp_pre = deque()
|
||||
tmp_pre = deque() # type: T.Deque[str]
|
||||
if not isinstance(args, collections.abc.Iterable):
|
||||
raise TypeError('can only concatenate Iterable[str] (not "{}") to CompilerArgs'.format(args))
|
||||
for arg in args:
|
||||
|
@ -746,7 +744,7 @@ class CompilerArgs(collections.abc.MutableSequence):
|
|||
#pre and post is going to be merged later before a iter call
|
||||
return self
|
||||
|
||||
def __radd__(self, args: T.Iterable[str]):
|
||||
def __radd__(self, args: T.Iterable[str]) -> 'CompilerArgs':
|
||||
self.flush_pre_post()
|
||||
new = CompilerArgs(self.compiler, args)
|
||||
new += self
|
||||
|
|
Loading…
Reference in New Issue