improvement78 Testcase, plus String arg for Error:DefineNoArgs.

This commit is contained in:
damc 2023-02-07 17:47:20 +01:00
parent 81003fe276
commit f98cb6c5d7
3 changed files with 22 additions and 2 deletions

View File

@ -34,7 +34,7 @@ pub enum Error {
DefineNotFound(String), DefineNotFound(String),
#[error("Define must have argument")] #[error("Define must have argument")]
DefineNoArgs, DefineNoArgs(String), // String is the macro identifier.
#[error("Exceed recursive limit")] #[error("Exceed recursive limit")]
ExceedRecursiveLimit, ExceedRecursiveLimit,

View File

@ -942,7 +942,7 @@ fn resolve_text_macro_usage<T: AsRef<Path>, U: AsRef<Path>>(
let mut arg_map = HashMap::new(); let mut arg_map = HashMap::new();
if !define.arguments.is_empty() && no_args { if !define.arguments.is_empty() && no_args {
return Err(Error::DefineNoArgs); return Err(Error::DefineNoArgs(define.identifier.clone()));
} }
for (i, (arg, default)) in define.arguments.iter().enumerate() { for (i, (arg, default)) in define.arguments.iter().enumerate() {
@ -1065,6 +1065,22 @@ mod tests {
); );
} // }}} } // }}}
#[test]
#[allow(non_snake_case)]
fn err_DefineNoArgs() { // {{{
match preprocess_usualargs("err_DefineNoArgs.sv").unwrap_err() {
Error::DefineNoArgs(identifier) => {
assert_eq!(
identifier,
String::from("A")
);
}
_ => {
panic!("Error::DefineNoArgs not raised.");
}
};
} // }}}
#[test] #[test]
#[allow(non_snake_case)] #[allow(non_snake_case)]
fn IEEE18002017_keywords_if2_13642005() { // {{{ fn IEEE18002017_keywords_if2_13642005() { // {{{

View File

@ -0,0 +1,4 @@
`define A(a)
`A // Macro called without required argument.