lemonlang 0.0.4

an experimental, modern, purely safe, programming language.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::{ast, ir::IrBasicValue, report::throw_ir_build_error};

use super::Builder;

impl Builder<'_> {
	pub fn build_ident_expr(&mut self, ident: &mut ast::Ident) -> IrBasicValue {
		if let Some(local) = self.ctx.get_local(&ident.text) {
			if self.ctx.is_member_scope() {
				return local.clone();
			}
			return self.resolve_value(local.clone());
		}
		throw_ir_build_error(format!("local value `{}` not found", ident.text));
		// let kind = self.build_type(ident.get_type_id(), ident.get_range());
		// self.ctx.new_register(kind)
	}
}