forked from M-Labs/nac3
nac3core: moved all builtin errors to nac3artiq code
This remove the need for hard-coding those definition IDs.
This commit is contained in:
parent
e126fef012
commit
642e3b2bad
|
@ -464,6 +464,8 @@ impl Nac3 {
|
||||||
|
|
||||||
let pyid_to_type = Arc::new(RwLock::new(HashMap::<u64, Type>::new()));
|
let pyid_to_type = Arc::new(RwLock::new(HashMap::<u64, Type>::new()));
|
||||||
let exception_names = [
|
let exception_names = [
|
||||||
|
"ZeroDivisionError",
|
||||||
|
"IndexError",
|
||||||
"ValueError",
|
"ValueError",
|
||||||
"RuntimeError"
|
"RuntimeError"
|
||||||
];
|
];
|
||||||
|
|
|
@ -79,22 +79,6 @@ pub fn get_exn_constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn get_builtins(primitives: &mut (PrimitiveStore, Unifier)) -> BuiltinInfo {
|
pub fn get_builtins(primitives: &mut (PrimitiveStore, Unifier)) -> BuiltinInfo {
|
||||||
// please refer to the top_level_def_list below for the definition IDs
|
|
||||||
let (div_by_zero_fun, div_by_zero_class, _, _) = get_exn_constructor(
|
|
||||||
"DivisionByZeroError",
|
|
||||||
12,
|
|
||||||
10,
|
|
||||||
&mut primitives.1,
|
|
||||||
&primitives.0,
|
|
||||||
);
|
|
||||||
let (index_err_fun, index_err_class, _, _) = get_exn_constructor(
|
|
||||||
"IndexError",
|
|
||||||
13,
|
|
||||||
11,
|
|
||||||
&mut primitives.1,
|
|
||||||
&primitives.0,
|
|
||||||
);
|
|
||||||
|
|
||||||
let int32 = primitives.0.int32;
|
let int32 = primitives.0.int32;
|
||||||
let int64 = primitives.0.int64;
|
let int64 = primitives.0.int64;
|
||||||
let uint32 = primitives.0.uint32;
|
let uint32 = primitives.0.uint32;
|
||||||
|
@ -121,7 +105,7 @@ pub fn get_builtins(primitives: &mut (PrimitiveStore, Unifier)) -> BuiltinInfo {
|
||||||
("__param2__".into(), int64, true),
|
("__param2__".into(), int64, true),
|
||||||
];
|
];
|
||||||
|
|
||||||
let top_level_def_list = vec![
|
let mut top_level_def_list = vec![
|
||||||
Arc::new(RwLock::new(TopLevelComposer::make_top_level_class_def(
|
Arc::new(RwLock::new(TopLevelComposer::make_top_level_class_def(
|
||||||
0,
|
0,
|
||||||
None,
|
None,
|
||||||
|
@ -196,10 +180,6 @@ pub fn get_builtins(primitives: &mut (PrimitiveStore, Unifier)) -> BuiltinInfo {
|
||||||
None,
|
None,
|
||||||
None,
|
None,
|
||||||
))),
|
))),
|
||||||
Arc::new(RwLock::new(div_by_zero_fun)),
|
|
||||||
Arc::new(RwLock::new(index_err_fun)),
|
|
||||||
Arc::new(RwLock::new(div_by_zero_class)),
|
|
||||||
Arc::new(RwLock::new(index_err_class)),
|
|
||||||
Arc::new(RwLock::new(TopLevelDef::Function {
|
Arc::new(RwLock::new(TopLevelDef::Function {
|
||||||
name: "int32".into(),
|
name: "int32".into(),
|
||||||
simple_name: "int32".into(),
|
simple_name: "int32".into(),
|
||||||
|
@ -1119,13 +1099,12 @@ pub fn get_builtins(primitives: &mut (PrimitiveStore, Unifier)) -> BuiltinInfo {
|
||||||
loc: None,
|
loc: None,
|
||||||
})),
|
})),
|
||||||
];
|
];
|
||||||
|
|
||||||
let ast_list: Vec<Option<ast::Stmt<()>>> =
|
let ast_list: Vec<Option<ast::Stmt<()>>> =
|
||||||
(0..top_level_def_list.len()).map(|_| None).collect();
|
(0..top_level_def_list.len()).map(|_| None).collect();
|
||||||
(
|
(
|
||||||
izip!(top_level_def_list, ast_list).collect_vec(),
|
izip!(top_level_def_list, ast_list).collect_vec(),
|
||||||
&[
|
&[
|
||||||
"ZeroDivisionError",
|
|
||||||
"IndexError",
|
|
||||||
"int32",
|
"int32",
|
||||||
"int64",
|
"int64",
|
||||||
"uint32",
|
"uint32",
|
||||||
|
|
Loading…
Reference in New Issue