Skip to content

Commit

Permalink
Replace position-based source code information with token-based sourc…
Browse files Browse the repository at this point in the history
…e code information (#301)
  • Loading branch information
Schottkyc137 committed May 9, 2024
1 parent 88cc1f3 commit 2a82770
Show file tree
Hide file tree
Showing 57 changed files with 2,553 additions and 1,924 deletions.
10 changes: 5 additions & 5 deletions vhdl_lang/src/analysis/analyze.rs
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ pub fn as_fatal<T>(res: EvalResult<T>) -> FatalResult<Option<T>> {
}
}

pub(super) struct AnalyzeContext<'a> {
pub(super) struct AnalyzeContext<'a, 't> {
pub(super) root: &'a DesignRoot,

pub work_sym: Symbol,
Expand All @@ -158,16 +158,16 @@ pub(super) struct AnalyzeContext<'a> {
uses: RefCell<FnvHashSet<UnitId>>,
missing_unit: RefCell<FnvHashSet<(Symbol, Symbol, Option<Symbol>)>>,
uses_library_all: RefCell<FnvHashSet<Symbol>>,
pub ctx: &'a dyn TokenAccess,
pub ctx: &'t dyn TokenAccess,
}

impl<'a> AnalyzeContext<'a> {
impl<'a, 't> AnalyzeContext<'a, 't> {
pub fn new(
root: &'a DesignRoot,
current_unit: &UnitId,
arena: &'a Arena,
ctx: &'a dyn TokenAccess,
) -> AnalyzeContext<'a> {
ctx: &'t dyn TokenAccess,
) -> AnalyzeContext<'a, 't> {
AnalyzeContext {
work_sym: root.symbol_utf8("work"),
std_sym: root.symbol_utf8("std"),
Expand Down
11 changes: 6 additions & 5 deletions vhdl_lang/src/analysis/assignment.rs
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,20 @@
use super::analyze::*;
use super::scope::*;
use super::target::AssignmentType;
use crate::ast::token_range::WithTokenSpan;
use crate::ast::*;
use crate::data::*;
use crate::named_entity::*;

impl<'a> AnalyzeContext<'a> {
impl<'a, 't> AnalyzeContext<'a, 't> {
// @TODO maybe make generic function for expression/waveform.
// wait until type checking to see if it makes sense
pub fn analyze_expr_assignment(
&self,
scope: &Scope<'a>,
target: &mut WithPos<Target>,
target: &mut WithTokenSpan<Target>,
assignment_type: AssignmentType,
rhs: &mut AssignmentRightHand<WithPos<Expression>>,
rhs: &mut AssignmentRightHand<WithTokenSpan<Expression>>,
diagnostics: &mut dyn DiagnosticHandler,
) -> FatalResult {
let ttyp = as_fatal(self.resolve_target(scope, target, assignment_type, diagnostics))?;
Expand Down Expand Up @@ -59,7 +60,7 @@ impl<'a> AnalyzeContext<'a> {
pub fn analyze_waveform_assignment(
&self,
scope: &Scope<'a>,
target: &mut WithPos<Target>,
target: &mut WithTokenSpan<Target>,
assignment_type: AssignmentType,
rhs: &mut AssignmentRightHand<Waveform>,
diagnostics: &mut dyn DiagnosticHandler,
Expand Down Expand Up @@ -124,7 +125,7 @@ impl<'a> AnalyzeContext<'a> {
&self,
scope: &Scope<'a>,
ttyp: Option<TypeEnt<'a>>,
expr: &mut WithPos<Expression>,
expr: &mut WithTokenSpan<Expression>,
diagnostics: &mut dyn DiagnosticHandler,
) -> FatalResult {
if let Some(ttyp) = ttyp {
Expand Down
Loading

0 comments on commit 2a82770

Please sign in to comment.