// ---
// tags: trident, rust
// crystal-type: source
// crystal-domain: comp
// ---
mod advanced;
mod basics;

use crate::diagnostic::Diagnostic;
use crate::lexer::Lexer;
use crate::parser::Parser;
use crate::typecheck::{ModuleExports, TypeChecker};

pub(super) fn check(source: &str) -> Result<ModuleExports, Vec<Diagnostic>> {
    let (tokens, _, _) = Lexer::new(source, 0).tokenize();
    let file = Parser::new(tokens).parse_file().unwrap();
    TypeChecker::new().check_file(&file)
}

pub(super) fn check_err(source: &str) -> Vec<Diagnostic> {
    match check(source) {
        Ok(_) => vec![],
        Err(diags) => diags,
    }
}

pub(super) fn check_with_flags(
    source: &str,
    flags: &[&str],
) -> Result<ModuleExports, Vec<Diagnostic>> {
    let (tokens, _, _) = Lexer::new(source, 0).tokenize();
    let file = Parser::new(tokens).parse_file().unwrap();
    let flag_set: std::collections::BTreeSet<String> =
        flags.iter().map(|s| s.to_string()).collect();
    TypeChecker::new()
        .with_cfg_flags(flag_set)
        .check_file(&file)
}

Homonyms

neural/trident/src/ast/mod.rs
cyb/optica/src/server/mod.rs
neural/trident/src/api/mod.rs
cyb/optica/src/render/mod.rs
neural/trident/src/config/mod.rs
cyb/optica/src/graph/mod.rs
neural/trident/src/syntax/mod.rs
cyb/optica/src/parser/mod.rs
neural/trident/src/runtime/mod.rs
neural/trident/src/deploy/mod.rs
cyb/optica/src/scanner/mod.rs
neural/trident/src/gpu/mod.rs
neural/trident/src/typecheck/mod.rs
neural/trident/src/import/mod.rs
neural/trident/src/diagnostic/mod.rs
neural/trident/src/ir/mod.rs
neural/trident/src/cost/mod.rs
neural/trident/src/neural/mod.rs
neural/trident/src/field/mod.rs
neural/trident/src/package/mod.rs
neural/trident/src/lsp/mod.rs
neural/trident/src/cli/mod.rs
neural/trident/src/compile/mod.rs
neural/trident/src/verify/mod.rs
cyb/optica/src/output/mod.rs
cyb/optica/src/query/mod.rs
neural/trident/src/cost/stack_verifier/mod.rs
neural/trident/src/verify/report/mod.rs
cyb/cyb/cyb-shell/src/worlds/mod.rs
cyb/honeycrisp/acpu/src/sparse/mod.rs
neural/trident/src/verify/solve/mod.rs
neural/trident/src/neural/data/mod.rs
cyb/honeycrisp/acpu/src/vector/mod.rs
cyb/honeycrisp/acpu/src/matrix/mod.rs
neural/trident/src/package/registry/mod.rs
neural/trident/src/verify/synthesize/mod.rs
neural/trident/src/lsp/util/mod.rs
cyb/honeycrisp/acpu/src/crypto/mod.rs
neural/trident/src/verify/sym/mod.rs
neural/trident/src/syntax/format/mod.rs
neural/trident/src/syntax/lexer/mod.rs
neural/trident/src/api/tests/mod.rs
cyb/honeycrisp/acpu/src/pulse/mod.rs
cyb/honeycrisp/aruminium/src/render/mod.rs
neural/trident/src/ir/lir/mod.rs
neural/trident/src/ir/tree/mod.rs
neural/trident/src/neural/model/mod.rs
neural/trident/src/config/resolve/mod.rs
neural/trident/src/verify/smt/mod.rs
cyb/cyb/cyb-shell/src/agent/mod.rs
cyb/cyb/cyb-shell/src/shell/mod.rs
neural/trident/src/syntax/grammar/mod.rs
cyb/honeycrisp/aruminium/src/ffi/mod.rs
neural/trident/src/ir/tir/mod.rs
neural/trident/src/package/store/mod.rs
cyb/honeycrisp/acpu/src/sync/mod.rs
neural/trident/src/verify/equiv/mod.rs
neural/trident/src/package/hash/mod.rs
neural/trident/src/package/manifest/mod.rs
neural/trident/src/lsp/semantic/mod.rs
cyb/honeycrisp/acpu/src/probe/mod.rs
neural/trident/src/config/scaffold/mod.rs
neural/trident/src/neural/inference/mod.rs
cyb/honeycrisp/acpu/src/field/mod.rs
cyb/honeycrisp/acpu/src/gemm/mod.rs
neural/trident/src/neural/training/mod.rs
neural/trident/src/ir/kir/mod.rs
neural/trident/src/cost/model/mod.rs
neural/trident/src/syntax/parser/mod.rs
cyb/honeycrisp/rane/src/mil/mod.rs
cyb/honeycrisp/acpu/src/numeric/mod.rs
bootloader/go-cyber/mcp/rust/src/tools/mod.rs
neural/trident/src/ir/lir/lower/mod.rs
neural/trident/src/ir/kir/lower/mod.rs
neural/trident/src/ir/tir/neural/mod.rs
neural/trident/src/ir/tir/optimize/mod.rs
bootloader/go-cyber/mcp/rust/src/clients/mod.rs
neural/trident/src/syntax/parser/tests/mod.rs
neural/trident/src/ir/tree/lower/mod.rs
neural/trident/src/neural/data/tir_graph/mod.rs
bootloader/go-cyber/mcp/rust/src/proto/mod.rs
neural/trident/src/ir/tir/builder/mod.rs
neural/trident/src/ir/tir/lower/mod.rs
neural/trident/src/ir/tir/stack/mod.rs
bootloader/go-cyber/cw/packages/cyber-std/src/tokenfactory/mod.rs

Graph