1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
use crate::linter::{Rule, RuleResult}; use sv_parser::{IntegerVectorType, NetType, RefNode, SyntaxTree}; pub struct WireReg; impl Rule for WireReg { fn check(&self, _syntax_tree: &SyntaxTree, node: &RefNode) -> RuleResult { match node { RefNode::NetType(NetType::Wire(_)) => RuleResult::Fail, RefNode::IntegerVectorType(IntegerVectorType::Reg(_)) => RuleResult::Fail, _ => RuleResult::Pass, } } fn name(&self) -> String { String::from("wire_reg") } fn hint(&self) -> String { String::from("`wire`/`reg` must be replaced to `logic`/`tri`") } fn reason(&self) -> String { String::from("`logic` can detect multi-drive") } }