Skip to main content

luaur_analysis/records/
invalid_name_checker.rs

1use alloc::string::String;
2
3use crate::records::cannot_extend_table::CannotExtendTable;
4use crate::records::duplicate_type_definition::DuplicateTypeDefinition;
5use crate::records::unknown_property::UnknownProperty;
6
7#[derive(Debug, Clone, PartialEq, Eq, Hash)]
8pub struct InvalidNameChecker {
9    invalid_name: String,
10}
11
12impl InvalidNameChecker {
13    pub fn new() -> Self {
14        Self {
15            invalid_name: "%error-id%".to_owned(),
16        }
17    }
18
19    pub fn new_with_invalid_name(invalid_name: String) -> Self {
20        Self { invalid_name }
21    }
22}
23
24impl InvalidNameChecker {
25    pub fn operator_unknown_property(&self, e: &UnknownProperty) -> bool {
26        e.key() == self.invalid_name
27    }
28
29    pub fn operator_cannot_extend_table(&self, e: &CannotExtendTable) -> bool {
30        e.prop() == self.invalid_name
31    }
32
33    pub fn operator_duplicate_type_definition(&self, e: &DuplicateTypeDefinition) -> bool {
34        e.name() == self.invalid_name
35    }
36
37    pub fn operator_fallback<T>(&self, _other: &T) -> bool {
38        false
39    }
40}
41
42unsafe impl Send for InvalidNameChecker {}
43unsafe impl Sync for InvalidNameChecker {}