Struct kailua_check::env::Context
[−]
[src]
pub struct Context<R> { /* fields omitted */ }
The global context, which also contains the type context.
Anything that has to be retained across multiple files should be here.
Due to the presence of a report receiver this is not easily shared or sent across threads;
Context::into_output
will give a report-free type that is suitable for analysis.
Methods
impl<R: Report> Context<R>
[src]
fn new(report: R) -> Context<R>
fn report(&self) -> &R
fn open_library(
&mut self,
name: Spanned<&[u8]>,
opts: Rc<RefCell<Options>>
) -> Result<()>
&mut self,
name: Spanned<&[u8]>,
opts: Rc<RefCell<Options>>
) -> Result<()>
fn get_loaded_module(&self, name: &[u8], span: Span) -> Result<Option<Module>>
fn mark_module_as_loading(&mut self, name: &[u8], span: Span)
fn make_class(
&mut self,
csid: ClassSystemId,
argtys: SpannedSlotSeq,
outerspan: Span
) -> Result<Option<ClassId>>
&mut self,
csid: ClassSystemId,
argtys: SpannedSlotSeq,
outerspan: Span
) -> Result<Option<ClassId>>
fn assume_class(
&mut self,
csid: ClassSystemId,
parent: Option<Spanned<ClassId>>,
outerspan: Span
) -> Result<Option<ClassId>>
&mut self,
csid: ClassSystemId,
parent: Option<Spanned<ClassId>>,
outerspan: Span
) -> Result<Option<ClassId>>
fn name_class(&mut self, cid: ClassId, name: Spanned<Name>) -> Result<()>
fn index_class_rval(
&mut self,
cls: Class,
key: Spanned<&Key>,
expspan: Span
) -> Result<Option<Slot>>
&mut self,
cls: Class,
key: Spanned<&Key>,
expspan: Span
) -> Result<Option<Slot>>
fn index_class_lval(
&mut self,
cls: Class,
key: Spanned<&Key>,
expspan: Span,
hint: Option<&Slot>
) -> Result<Option<(bool, Slot)>>
&mut self,
cls: Class,
key: Spanned<&Key>,
expspan: Span,
hint: Option<&Slot>
) -> Result<Option<(bool, Slot)>>
fn into_output(self) -> Output
Methods from Deref<Target = Output>
fn types(&self) -> &Types
fn types_mut(&mut self) -> &mut Types
fn spanned_slots(&self) -> &SpanMap<Slot>
fn spanned_slots_mut(&mut self) -> &mut SpanMap<Slot>
fn global_scope(&self) -> &Scope
fn global_scope_mut(&mut self) -> &mut Scope
fn get<'a>(&'a self, id: &Id) -> Option<&'a NameDef>
fn get_mut<'a>(&'a mut self, id: &Id) -> Option<&'a mut NameDef>
fn all<'a>(&'a self) -> Iter<'a, Id, NameDef>
fn get_string_meta(&self) -> Option<Spanned<Slot>>
fn get_available_fields<'a>(&'a self, ty: &Ty) -> Option<HashMap<Key, Slot>>
Trait Implementations
impl<R: Report> Deref for Context<R>
[src]
type Target = Output
The resulting type after dereferencing
fn deref(&self) -> &Output
The method called to dereference a value