Refrencing and LocalScope
This commit is contained in:
+14
-1
@@ -1,6 +1,9 @@
|
||||
use std::{collections::HashMap, sync::Arc};
|
||||
|
||||
use crate::top_level::{FunctionSymbol, StructSymbol, TopLevelSymbolScope, TypeSymbol, VarSymbol};
|
||||
use crate::{
|
||||
scope::Refrence,
|
||||
top_level::{FunctionSymbol, StructSymbol, TopLevelSymbolScope, TypeSymbol, VarSymbol},
|
||||
};
|
||||
|
||||
#[derive(Clone, Debug)]
|
||||
pub enum TypeRef {
|
||||
@@ -158,4 +161,14 @@ impl TopLevelHirScope {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_refrence(&self, name: &String) -> Option<Refrence> {
|
||||
if let Some(r) = self.functions.get(name) {
|
||||
Some(Refrence::Func(r.clone()))
|
||||
} else if let Some(r) = self.types.get(name) {
|
||||
Some(Refrence::Type(r.clone()))
|
||||
} else {
|
||||
None
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user