luaur_analysis/records/
invalid_name_checker.rs1use 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 {}