forked from M-Labs/nac3
core: Remove redundant argument in type annotation parsing
This commit is contained in:
parent
f09f3c27a5
commit
8886964776
|
@ -563,7 +563,6 @@ impl TopLevelComposer {
|
||||||
&primitive_types,
|
&primitive_types,
|
||||||
b,
|
b,
|
||||||
vec![(*class_def_id, class_type_vars.clone())].into_iter().collect(),
|
vec![(*class_def_id, class_type_vars.clone())].into_iter().collect(),
|
||||||
None,
|
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
if let TypeAnnotation::CustomClass { .. } = &base_ty {
|
if let TypeAnnotation::CustomClass { .. } = &base_ty {
|
||||||
|
@ -904,7 +903,6 @@ impl TopLevelComposer {
|
||||||
// NOTE: since only class need this, for function
|
// NOTE: since only class need this, for function
|
||||||
// it should be fine to be empty map
|
// it should be fine to be empty map
|
||||||
HashMap::new(),
|
HashMap::new(),
|
||||||
None,
|
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
let type_vars_within =
|
let type_vars_within =
|
||||||
|
@ -971,7 +969,6 @@ impl TopLevelComposer {
|
||||||
// NOTE: since only class need this, for function
|
// NOTE: since only class need this, for function
|
||||||
// it should be fine to be empty map
|
// it should be fine to be empty map
|
||||||
HashMap::new(),
|
HashMap::new(),
|
||||||
None,
|
|
||||||
)?
|
)?
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1158,7 +1155,6 @@ impl TopLevelComposer {
|
||||||
vec![(class_id, class_type_vars_def.clone())]
|
vec![(class_id, class_type_vars_def.clone())]
|
||||||
.into_iter()
|
.into_iter()
|
||||||
.collect(),
|
.collect(),
|
||||||
None,
|
|
||||||
)?
|
)?
|
||||||
};
|
};
|
||||||
// find type vars within this method parameter type annotation
|
// find type vars within this method parameter type annotation
|
||||||
|
@ -1224,7 +1220,6 @@ impl TopLevelComposer {
|
||||||
primitives,
|
primitives,
|
||||||
result,
|
result,
|
||||||
vec![(class_id, class_type_vars_def.clone())].into_iter().collect(),
|
vec![(class_id, class_type_vars_def.clone())].into_iter().collect(),
|
||||||
None,
|
|
||||||
)?;
|
)?;
|
||||||
// find type vars within this return type annotation
|
// find type vars within this return type annotation
|
||||||
let type_vars_within =
|
let type_vars_within =
|
||||||
|
@ -1319,7 +1314,6 @@ impl TopLevelComposer {
|
||||||
primitives,
|
primitives,
|
||||||
annotation.as_ref(),
|
annotation.as_ref(),
|
||||||
vec![(class_id, class_type_vars_def.clone())].into_iter().collect(),
|
vec![(class_id, class_type_vars_def.clone())].into_iter().collect(),
|
||||||
None,
|
|
||||||
)?;
|
)?;
|
||||||
// find type vars within this return type annotation
|
// find type vars within this return type annotation
|
||||||
let type_vars_within =
|
let type_vars_within =
|
||||||
|
|
|
@ -74,7 +74,6 @@ pub fn parse_ast_to_type_annotation_kinds<T>(
|
||||||
expr: &ast::Expr<T>,
|
expr: &ast::Expr<T>,
|
||||||
// the key stores the type_var of this topleveldef::class, we only need this field here
|
// the key stores the type_var of this topleveldef::class, we only need this field here
|
||||||
locked: HashMap<DefinitionId, Vec<Type>>,
|
locked: HashMap<DefinitionId, Vec<Type>>,
|
||||||
type_var: Option<Type>,
|
|
||||||
) -> Result<TypeAnnotation, HashSet<String>> {
|
) -> Result<TypeAnnotation, HashSet<String>> {
|
||||||
let name_handle = |id: &StrRef,
|
let name_handle = |id: &StrRef,
|
||||||
unifier: &mut Unifier,
|
unifier: &mut Unifier,
|
||||||
|
@ -195,7 +194,6 @@ pub fn parse_ast_to_type_annotation_kinds<T>(
|
||||||
locked.insert(obj_id, type_vars.clone());
|
locked.insert(obj_id, type_vars.clone());
|
||||||
locked.clone()
|
locked.clone()
|
||||||
},
|
},
|
||||||
None,
|
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
.collect::<Result<Vec<_>, _>>()?;
|
.collect::<Result<Vec<_>, _>>()?;
|
||||||
|
@ -231,7 +229,6 @@ pub fn parse_ast_to_type_annotation_kinds<T>(
|
||||||
primitives,
|
primitives,
|
||||||
slice.as_ref(),
|
slice.as_ref(),
|
||||||
locked,
|
locked,
|
||||||
None,
|
|
||||||
)?;
|
)?;
|
||||||
if !matches!(def, TypeAnnotation::CustomClass { .. }) {
|
if !matches!(def, TypeAnnotation::CustomClass { .. }) {
|
||||||
unreachable!("must be concretized custom class kind in the virtual")
|
unreachable!("must be concretized custom class kind in the virtual")
|
||||||
|
@ -252,7 +249,6 @@ pub fn parse_ast_to_type_annotation_kinds<T>(
|
||||||
primitives,
|
primitives,
|
||||||
slice.as_ref(),
|
slice.as_ref(),
|
||||||
locked,
|
locked,
|
||||||
None,
|
|
||||||
)?;
|
)?;
|
||||||
Ok(TypeAnnotation::List(def_ann.into()))
|
Ok(TypeAnnotation::List(def_ann.into()))
|
||||||
}
|
}
|
||||||
|
@ -270,7 +266,6 @@ pub fn parse_ast_to_type_annotation_kinds<T>(
|
||||||
primitives,
|
primitives,
|
||||||
slice.as_ref(),
|
slice.as_ref(),
|
||||||
locked,
|
locked,
|
||||||
None,
|
|
||||||
)?;
|
)?;
|
||||||
let id =
|
let id =
|
||||||
if let TypeEnum::TObj { obj_id, .. } = unifier.get_ty(primitives.option).as_ref() {
|
if let TypeEnum::TObj { obj_id, .. } = unifier.get_ty(primitives.option).as_ref() {
|
||||||
|
@ -304,7 +299,6 @@ pub fn parse_ast_to_type_annotation_kinds<T>(
|
||||||
primitives,
|
primitives,
|
||||||
e,
|
e,
|
||||||
locked.clone(),
|
locked.clone(),
|
||||||
None,
|
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
.collect::<Result<Vec<_>, _>>()?;
|
.collect::<Result<Vec<_>, _>>()?;
|
||||||
|
@ -337,7 +331,6 @@ pub fn parse_ast_to_type_annotation_kinds<T>(
|
||||||
primitives,
|
primitives,
|
||||||
e,
|
e,
|
||||||
locked.clone(),
|
locked.clone(),
|
||||||
None,
|
|
||||||
),
|
),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -104,7 +104,6 @@ fn handle_typevar_definition(
|
||||||
primitives,
|
primitives,
|
||||||
x,
|
x,
|
||||||
HashMap::default(),
|
HashMap::default(),
|
||||||
None,
|
|
||||||
)?;
|
)?;
|
||||||
get_type_from_type_annotation_kinds(
|
get_type_from_type_annotation_kinds(
|
||||||
def_list, unifier, &ty, &mut None
|
def_list, unifier, &ty, &mut None
|
||||||
|
@ -146,7 +145,6 @@ fn handle_typevar_definition(
|
||||||
primitives,
|
primitives,
|
||||||
&args[1],
|
&args[1],
|
||||||
HashMap::default(),
|
HashMap::default(),
|
||||||
None,
|
|
||||||
)?;
|
)?;
|
||||||
let constraint = get_type_from_type_annotation_kinds(
|
let constraint = get_type_from_type_annotation_kinds(
|
||||||
def_list, unifier, &ty, &mut None
|
def_list, unifier, &ty, &mut None
|
||||||
|
|
Loading…
Reference in New Issue