Merge pull request #2978 from rtfeldman/scope-bitmask

Scope bitmask
This commit is contained in:
Ayaz 2022-05-01 12:26:14 -04:00 committed by GitHub
commit 84b3ef5fd7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
17 changed files with 546 additions and 298 deletions

View file

@ -1,5 +1,6 @@
use crate::abilities::MemberVariables;
use crate::annotation::canonicalize_annotation;
use crate::annotation::find_type_def_symbols;
use crate::annotation::IntroducedVariables;
use crate::env::Env;
use crate::expr::AnnotatedMark;
@ -277,12 +278,7 @@ pub(crate) fn canonicalize_defs<'a>(
ann,
kind,
} => {
let referenced_symbols = crate::annotation::find_type_def_symbols(
env.home,
// TODO IDENT_IDS
&mut scope.ident_ids,
&ann.value,
);
let referenced_symbols = find_type_def_symbols(scope, &ann.value);
referenced_type_symbols.insert(name.value, referenced_symbols);
@ -295,12 +291,7 @@ pub(crate) fn canonicalize_defs<'a>(
// Add the referenced type symbols of each member function. We need to make
// sure those are processed first before we resolve the whole ability
// definition.
referenced_symbols.extend(crate::annotation::find_type_def_symbols(
env.home,
// TODO IDENT_IDS
&mut scope.ident_ids,
&member.typ.value,
));
referenced_symbols.extend(find_type_def_symbols(scope, &member.typ.value));
}
referenced_type_symbols.insert(name.value, referenced_symbols);