forked from M-Labs/nac3
nac3core/artiq: raise dedicated UnwrapNoneError
This commit is contained in:
parent
8cdcb663f4
commit
add536428e
|
@ -16,7 +16,8 @@ class EmbeddingMap:
|
|||
"CacheError",
|
||||
"SPIError",
|
||||
"0:ZeroDivisionError",
|
||||
"0:IndexError"])
|
||||
"0:IndexError",
|
||||
"0:UnwrapNoneError"])
|
||||
|
||||
def preallocate_runtime_exception_names(self, names):
|
||||
for i, name in enumerate(names):
|
||||
|
|
|
@ -11,7 +11,7 @@ from embedding_map import EmbeddingMap
|
|||
|
||||
__all__ = [
|
||||
"Kernel", "KernelInvariant", "virtual",
|
||||
"Option", "Some", "none",
|
||||
"Option", "Some", "none", "UnwrapNoneError",
|
||||
"round64", "floor64", "ceil64",
|
||||
"extern", "kernel", "portable", "nac3",
|
||||
"rpc", "ms", "us", "ns",
|
||||
|
@ -47,7 +47,7 @@ class Option(Generic[T]):
|
|||
|
||||
def unwrap(self):
|
||||
if self.is_none():
|
||||
raise ValueError("unwrap on none")
|
||||
raise UnwrapNoneError()
|
||||
return self._nac3_option
|
||||
|
||||
def __repr__(self) -> str:
|
||||
|
@ -274,5 +274,10 @@ class KernelContextManager:
|
|||
def __exit__(self):
|
||||
pass
|
||||
|
||||
@nac3
|
||||
class UnwrapNoneError(Exception):
|
||||
"""raised when unwrapping a none value"""
|
||||
artiq_builtin = True
|
||||
|
||||
parallel = KernelContextManager()
|
||||
sequential = KernelContextManager()
|
||||
|
|
|
@ -1319,8 +1319,8 @@ pub fn gen_expr<'ctx, 'a, G: CodeGenerator>(
|
|||
ctx.make_assert(
|
||||
generator,
|
||||
not_null,
|
||||
"0:ValueError",
|
||||
"unwrap on none",
|
||||
"0:UnwrapNoneError",
|
||||
"",
|
||||
[None, None, None],
|
||||
expr.location,
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue