1
0
forked from M-Labs/nac3

nac3core: clearer comments

This commit is contained in:
ychenfo 2021-11-22 15:06:16 +08:00
parent 664e02cec4
commit 49476d06e1
2 changed files with 6 additions and 4 deletions

View File

@ -148,8 +148,9 @@ impl ConcreteTypeStore {
.borrow()
.iter()
.filter_map(|(name, ty)| {
// filter out functions as they can have type vars and
// will not affect codegen
// here we should not have type vars, but some partial instantiated
// class methods can still have uninstantiated type vars, so
// filter out all the methods, as this will not affect codegen
if let TypeEnum::TFunc( .. ) = &*unifier.get_ty(ty.0) {
None
} else {

View File

@ -725,8 +725,9 @@ impl Unifier {
if let TypeEnum::TVar { id, range, .. } =
self.unification_table.probe_value(*v).as_ref()
{
// need to do this for partial instantiated function
// (in class methods that contains type vars not in class)
// for class methods that contain type vars not in class declaration,
// as long as there exits one uninstantiated type var, the function is not instantiated,
// and need to do substitution on those type vars
if k == id {
instantiated = false;
vars.push((*k, range.clone()));