rototo 0.1.0-alpha.3

Control plane for runtime configuration of your application.
Documentation
use crate::diagnostics::{DiagnosticLocation, EntityId, LintDiagnostic, LintStage, RototoRuleId};

use super::super::builtins;
use super::super::engine::LintContext;
use super::super::references::ReferenceIndex;

pub(super) fn run_builtin(ctx: &mut LintContext) {
    ctx.references = ReferenceIndex::build(&ctx.index, &ctx.source, &ctx.syntax);
    builtins::run_reference(ctx);
}

pub(crate) fn push_reference_diagnostic(
    diagnostics: &mut Vec<LintDiagnostic>,
    rule: RototoRuleId,
    entity: EntityId,
    primary: DiagnosticLocation,
    message: impl Into<String>,
) {
    diagnostics.push(LintDiagnostic::rototo(
        rule,
        LintStage::Reference,
        entity,
        primary,
        message,
    ));
}