aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_syntax/src/validation/mod.rs
blob: 2ff0bc26d321f817623ab38e591cdc87073a7bc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use crate::{
    algo::visit::{visitor_ctx, VisitorCtx},
    ast,
    SourceFileNode,
    yellow::SyntaxError,
};

mod char;
mod string;

pub(crate) fn validate(file: &SourceFileNode) -> Vec<SyntaxError> {
    let mut errors = Vec::new();
    for node in file.syntax().descendants() {
        let _ = visitor_ctx(&mut errors)
            .visit::<ast::Char, _>(self::char::validate_char_node)
            .visit::<ast::String, _>(self::string::validate_string_node)
            .accept(node);
    }
    errors
}