Решение на Логически изрази от Божидар Виденов
Към профила на Божидар Виденов
Резултати
- 0 точки от тестове
- 0 бонус точки
- 0 точки общо
- 0 успешни тест(а)
- 0 неуспешни тест(а)
Код
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum Expression {
Atom(char),
Not(Box<Expression>),
And(Vec<Expression>),
Or(Vec<Expression>),
}
#[derive(Debug, PartialEq, Eq)]
pub enum ParseError {
UnexpectedExpr,
UnexpectedUnaryOp,
UnexpectedBinOp,
UnexpectedParen,
UnexpectedEnd,
}
pub struct SimpleExprParser {
operands: Vec<Expression>,
ops: Vec<char>,
pending_nots: usize,
expect_operand: bool,
}
impl SimpleExprParser {
pub fn new() -> SimpleExprParser {
SimpleExprParser {
operands: Vec::new(),
ops: Vec::new(),
pending_nots: 0,
expect_operand: true,
}
}
pub fn push_atom(&mut self, c: char) -> Result<(), ParseError> {
if !self.expect_operand {
return Err(ParseError::UnexpectedExpr);
}
let mut expr = Expression::Atom(c);
for _ in 0..self.pending_nots {
expr = Expression::Not(Box::new(expr));
}
self.pending_nots = 0;
self.operands.push(expr);
self.expect_operand = false;
Ok(())
}
pub fn push_op(&mut self, op: char) -> Result<(), ParseError> {
match op {
'!' => {
if !self.expect_operand {
return Err(ParseError::UnexpectedUnaryOp);
}
self.pending_nots += 1;
Ok(())
}
'&' | '|' => {
if self.expect_operand {
return Err(ParseError::UnexpectedBinOp);
}
self.ops.push(op);
self.expect_operand = true;
Ok(())
}
_ => panic!("Invalid operator"),
}
}
fn expect_operand_check(&mut self, e: Expression) -> Result<(), ParseError> {
if !self.expect_operand {
return Err(ParseError::UnexpectedExpr);
}
if self.pending_nots > 0 {
let mut expr = e;
for _ in 0..self.pending_nots {
expr = Expression::Not(Box::new(expr));
}
self.pending_nots = 0;
self.operands.push(expr);
} else {
self.operands.push(e);
}
self.expect_operand = false;
Ok(())
}
pub fn finish(self) -> Result<Expression, ParseError> {
if self.expect_operand {
return Err(ParseError::UnexpectedEnd);
}
if self.pending_nots > 0 {
return Err(ParseError::UnexpectedEnd);
}
let mut expr = self.operands[0].clone();
for (i, &op) in self.ops.iter().enumerate() {
let next = self.operands[i + 1].clone();
expr = combine(expr, op, next);
}
Ok(expr)
}
}
fn combine(left: Expression, op: char, right: Expression) -> Expression {
match op {
'&' => {
if let Expression::And(mut v) = left {
v.push(right);
Expression::And(v)
} else {
Expression::And(vec![left, right])
}
}
'|' => {
if let Expression::Or(mut v) = left {
v.push(right);
Expression::Or(v)
} else {
Expression::Or(vec![left, right])
}
}
_ => panic!("Invalid operator"),
}
}
pub struct ExprParser {
stack: Vec<SimpleExprParser>,
}
impl ExprParser {
pub fn new() -> ExprParser {
ExprParser {
stack: vec![SimpleExprParser::new()],
}
}
pub fn push_atom(&mut self, c: char) -> Result<(), ParseError> {
self.top_mut().push_atom(c)
}
pub fn push_op(&mut self, op: char) -> Result<(), ParseError> {
self.top_mut().push_op(op)
}
pub fn open_paren(&mut self) -> Result<(), ParseError> {
self.stack.push(SimpleExprParser::new());
Ok(())
}
pub fn close_paren(&mut self) -> Result<(), ParseError> {
if self.stack.len() == 1 {
return Err(ParseError::UnexpectedParen);
}
let parser = self.stack.pop().unwrap();
let expr = parser.finish()?;
self.top_mut().expect_operand_check(expr)
}
fn top_mut(&mut self) -> &mut SimpleExprParser {
self.stack.last_mut().unwrap()
}
pub fn finish(mut self) -> Result<Expression, ParseError> {
if self.stack.len() != 1 {
return Err(ParseError::UnexpectedParen);
}
self.stack.pop().unwrap().finish()
}
}
#[derive(Clone, Debug, PartialEq, Eq)]
pub enum Value {
True,
False,
Expr(Expression),
}
fn eval_rec(
e: &Expression,
tset: &std::collections::HashSet<char>,
fset: &std::collections::HashSet<char>,
) -> Value {
use Value::*;
match e {
Expression::Atom(c) => {
if tset.contains(c) {
True
} else if fset.contains(c) {
False
} else {
Expr(Expression::Atom(*c))
}
}
Expression::Not(inner) => match eval_rec(inner, tset, fset) {
True => False,
False => True,
Expr(x) => Expr(Expression::Not(Box::new(x))),
},
Expression::And(v) => {
let mut new_exprs = Vec::new();
for sub in v {
match eval_rec(sub, tset, fset) {
False => return False,
True => (),
Expr(x) => new_exprs.push(x),
}
}
if new_exprs.is_empty() {
True
} else if new_exprs.len() == 1 {
Expr(new_exprs.pop().unwrap())
} else {
Expr(Expression::And(new_exprs))
}
}
Expression::Or(v) => {
let mut new_exprs = Vec::new();
for sub in v {
match eval_rec(sub, tset, fset) {
True => return True,
False => (),
Expr(x) => new_exprs.push(x),
}
}
if new_exprs.is_empty() {
False
} else if new_exprs.len() == 1 {
Expr(new_exprs.pop().unwrap())
} else {
Expr(Expression::Or(new_exprs))
}
}
}
}
pub fn eval(expr: &Expression, truthy: &[char], falsy: &[char]) -> Value {
let tset: std::collections::HashSet<char> = truthy.iter().cloned().collect();
let fset: std::collections::HashSet<char> = falsy.iter().cloned().collect();
eval_rec(expr, &tset, &fset)
}
Лог от изпълнението
Compiling solution v0.1.0 (/tmp/d20241224-258381-1ua07gt/solution) error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 78 | assert_eq!(parser.finish().unwrap(), expr!(atom('A'))); | ---------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 88 | assert_eq!(parser.finish().unwrap(), expr!(and(atom('A'), atom('B')))); | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 88 | assert_eq!(parser.finish().unwrap(), expr!(and(atom('A'), atom('B')))); | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 92 | assert_eq!(parser.finish().unwrap(), expr!(or(atom('A'), atom('B')))); | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 92 | assert_eq!(parser.finish().unwrap(), expr!(or(atom('A'), atom('B')))); | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 101 | assert_eq!(parser.finish().unwrap(), expr!(not(atom('B')))); | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 101 | assert_eq!(parser.finish().unwrap(), expr!(not(atom('B')))); | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 110 | assert_eq!(parser.finish().unwrap(), expr!(and(atom('A'), not(atom('B'))))); | ------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 110 | assert_eq!(parser.finish().unwrap(), expr!(and(atom('A'), not(atom('B'))))); | ------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 110 | assert_eq!(parser.finish().unwrap(), expr!(and(atom('A'), not(atom('B'))))); | ------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 114 | assert_eq!(parser.finish().unwrap(), expr!(or(not(atom('A')), atom('B')))); | ------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 114 | assert_eq!(parser.finish().unwrap(), expr!(or(not(atom('A')), atom('B')))); | ------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 114 | assert_eq!(parser.finish().unwrap(), expr!(or(not(atom('A')), atom('B')))); | ------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 118 | assert_eq!(parser.finish().unwrap(), expr!(and(not(atom('A')), not(atom('B'))))); | ------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 118 | assert_eq!(parser.finish().unwrap(), expr!(and(not(atom('A')), not(atom('B'))))); | ------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 118 | assert_eq!(parser.finish().unwrap(), expr!(and(not(atom('A')), not(atom('B'))))); | ------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 127 | assert_eq!(parser.finish().unwrap(), expr!(and(atom('A'), atom('B'), atom('C')))); | ------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 127 | assert_eq!(parser.finish().unwrap(), expr!(and(atom('A'), atom('B'), atom('C')))); | ------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 133 | expr!(or(atom('X'), atom('Y'), atom('Z'), atom('W'))) | ----------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 133 | expr!(or(atom('X'), atom('Y'), atom('Z'), atom('W'))) | ----------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 143 | assert_eq!(parser.finish().unwrap(), expr!(not(not(not(atom('B')))))); | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 143 | assert_eq!(parser.finish().unwrap(), expr!(not(not(not(atom('B')))))); | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 147 | assert_eq!(parser.finish().unwrap(), expr!(or(atom('A'), not(not(atom('B')))))); | ----------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 147 | assert_eq!(parser.finish().unwrap(), expr!(or(atom('A'), not(not(atom('B')))))); | ----------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 147 | assert_eq!(parser.finish().unwrap(), expr!(or(atom('A'), not(not(atom('B')))))); | ----------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 151 | assert_eq!(parser.finish().unwrap(), expr!(or(not(not(atom('A'))), atom('B')))); | ----------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 151 | assert_eq!(parser.finish().unwrap(), expr!(or(not(not(atom('A'))), atom('B')))); | ----------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 151 | assert_eq!(parser.finish().unwrap(), expr!(or(not(not(atom('A'))), atom('B')))); | ----------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 162 | expr!(and(or(and(atom('A'), atom('B')), atom('C')), atom('D'))) | --------------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 162 | expr!(and(or(and(atom('A'), atom('B')), atom('C')), atom('D'))) | --------------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 162 | expr!(and(or(and(atom('A'), atom('B')), atom('C')), atom('D'))) | --------------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 169 | expr!(or(and(or(atom('A'), atom('B')), atom('C')), atom('D'))) | -------------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 169 | expr!(or(and(or(atom('A'), atom('B')), atom('C')), atom('D'))) | -------------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 169 | expr!(or(and(or(atom('A'), atom('B')), atom('C')), atom('D'))) | -------------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 179 | assert_eq!(parser.finish().unwrap(), expr!(atom('A'))); | ---------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 183 | assert_eq!(parser.finish().unwrap(), expr!(and(atom('A'), atom('B')))); | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 183 | assert_eq!(parser.finish().unwrap(), expr!(and(atom('A'), atom('B')))); | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 187 | assert_eq!(parser.finish().unwrap(), expr!(or(atom('A'), atom('B')))); | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 187 | assert_eq!(parser.finish().unwrap(), expr!(or(atom('A'), atom('B')))); | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 191 | assert_eq!(parser.finish().unwrap(), expr!(not(atom('A')))); | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 191 | assert_eq!(parser.finish().unwrap(), expr!(not(atom('A')))); | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 202 | expr!(or(atom('X'), and(atom('A'), atom('B')))) | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 202 | expr!(or(atom('X'), and(atom('A'), atom('B')))) | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 202 | expr!(or(atom('X'), and(atom('A'), atom('B')))) | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 209 | expr!(and(or(atom('A'), atom('B')), atom('X'))) | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 209 | expr!(and(or(atom('A'), atom('B')), atom('X'))) | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 209 | expr!(and(or(atom('A'), atom('B')), atom('X'))) | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 221 | expr!(and(atom('X'), not(or(atom('A'), atom('B'))))) | ---------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 221 | expr!(and(atom('X'), not(or(atom('A'), atom('B'))))) | ---------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 221 | expr!(and(atom('X'), not(or(atom('A'), atom('B'))))) | ---------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 221 | expr!(and(atom('X'), not(or(atom('A'), atom('B'))))) | ---------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 228 | expr!(or(not(or(atom('A'), atom('B'))), atom('X'))) | --------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 228 | expr!(or(not(or(atom('A'), atom('B'))), atom('X'))) | --------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 228 | expr!(or(not(or(atom('A'), atom('B'))), atom('X'))) | --------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 240 | / expr!(or( 241 | | atom('X'), 242 | | and(atom('A'), atom('B')), 243 | | and(atom('C'), atom('D')), 244 | | atom('Y') 245 | | )) | |______________- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 240 | / expr!(or( 241 | | atom('X'), 242 | | and(atom('A'), atom('B')), 243 | | and(atom('C'), atom('D')), 244 | | atom('Y') 245 | | )) | |______________- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 240 | / expr!(or( 241 | | atom('X'), 242 | | and(atom('A'), atom('B')), 243 | | and(atom('C'), atom('D')), 244 | | atom('Y') 245 | | )) | |______________- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 257 | expr!(not(and(atom('A'), not(and(atom('B'), not(and(atom('C'), atom('D')))))))) | ------------------------------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 257 | expr!(not(and(atom('A'), not(and(atom('B'), not(and(atom('C'), atom('D')))))))) | ------------------------------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 257 | expr!(not(and(atom('A'), not(and(atom('B'), not(and(atom('C'), atom('D')))))))) | ------------------------------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 372 | assert_eq!(eval(&expr!(atom('A')), &['A'], &[]), Value::True); | ---------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 373 | assert_eq!(eval(&expr!(atom('A')), &[], &['A']), Value::False); | ---------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 375 | assert_eq!(eval(&expr!(not(atom('B'))), &['A'], &['B']), Value::True); | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 375 | assert_eq!(eval(&expr!(not(atom('B'))), &['A'], &['B']), Value::True); | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 376 | assert_eq!(eval(&expr!(not(atom('B'))), &['B'], &['A']), Value::False); | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 376 | assert_eq!(eval(&expr!(not(atom('B'))), &['B'], &['A']), Value::False); | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 378 | assert_eq!(eval(&expr!(and(atom('A'), atom('B'))), &['A', 'B'], &[]), Value::True); | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 378 | assert_eq!(eval(&expr!(and(atom('A'), atom('B'))), &['A', 'B'], &[]), Value::True); | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 379 | assert_eq!(eval(&expr!(and(atom('A'), atom('B'))), &['A'], &['B']), Value::False); | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 379 | assert_eq!(eval(&expr!(and(atom('A'), atom('B'))), &['A'], &['B']), Value::False); | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 380 | assert_eq!(eval(&expr!(or(atom('A'), atom('B'))), &['A'], &['B']), Value::True); | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 380 | assert_eq!(eval(&expr!(or(atom('A'), atom('B'))), &['A'], &['B']), Value::True); | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 381 | assert_eq!(eval(&expr!(or(atom('A'), atom('B'))), &[], &['A', 'B']), Value::False); | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 381 | assert_eq!(eval(&expr!(or(atom('A'), atom('B'))), &[], &['A', 'B']), Value::False); | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 389 | eval(&expr!(not(and(atom('A'), atom('B')))), &['A', 'B'], &[]), | ------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 389 | eval(&expr!(not(and(atom('A'), atom('B')))), &['A', 'B'], &[]), | ------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 389 | eval(&expr!(not(and(atom('A'), atom('B')))), &['A', 'B'], &[]), | ------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 393 | eval(&expr!(not(and(atom('A'), atom('B')))), &['A'], &['B']), | ------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 393 | eval(&expr!(not(and(atom('A'), atom('B')))), &['A'], &['B']), | ------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 393 | eval(&expr!(not(and(atom('A'), atom('B')))), &['A'], &['B']), | ------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 397 | eval(&expr!(not(or(atom('A'), atom('B')))), &['A'], &['B']), | ------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 397 | eval(&expr!(not(or(atom('A'), atom('B')))), &['A'], &['B']), | ------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 397 | eval(&expr!(not(or(atom('A'), atom('B')))), &['A'], &['B']), | ------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 401 | eval(&expr!(not(or(atom('A'), atom('B')))), &[], &['A', 'B']), | ------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 401 | eval(&expr!(not(or(atom('A'), atom('B')))), &[], &['A', 'B']), | ------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 401 | eval(&expr!(not(or(atom('A'), atom('B')))), &[], &['A', 'B']), | ------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 410 | assert_eq!(eval(&expr!(atom('A')), &[], &[]), Value::Expr(expr!(atom('A')))); | ---------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 410 | assert_eq!(eval(&expr!(atom('A')), &[], &[]), Value::Expr(expr!(atom('A')))); | ---------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 412 | eval(&expr!(not(atom('B'))), &[], &[]), | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 412 | eval(&expr!(not(atom('B'))), &[], &[]), | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 413 | Value::Expr(expr!(not(atom('B')))) | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 413 | Value::Expr(expr!(not(atom('B')))) | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 417 | eval(&expr!(and(atom('A'), atom('B'), atom('C'))), &['B'], &[]), | ------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 417 | eval(&expr!(and(atom('A'), atom('B'), atom('C'))), &['B'], &[]), | ------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 418 | Value::Expr(expr!(and(atom('A'), atom('C')))) | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 418 | Value::Expr(expr!(and(atom('A'), atom('C')))) | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 421 | eval(&expr!(and(atom('A'), atom('B'), atom('C'))), &[], &['B']), | ------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 421 | eval(&expr!(and(atom('A'), atom('B'), atom('C'))), &[], &['B']), | ------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 426 | eval(&expr!(or(atom('A'), atom('B'), atom('C'))), &['B'], &[]), | ------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 426 | eval(&expr!(or(atom('A'), atom('B'), atom('C'))), &['B'], &[]), | ------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 430 | eval(&expr!(or(atom('A'), atom('B'), atom('C'))), &[], &['B']), | ------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 430 | eval(&expr!(or(atom('A'), atom('B'), atom('C'))), &[], &['B']), | ------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 431 | Value::Expr(expr!(or(atom('A'), atom('C')))) | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 431 | Value::Expr(expr!(or(atom('A'), atom('C')))) | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 435 | eval(&expr!(and(atom('A'), not(atom('B')), atom('C'))), &[], &['B']), | ------------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 435 | eval(&expr!(and(atom('A'), not(atom('B')), atom('C'))), &[], &['B']), | ------------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 435 | eval(&expr!(and(atom('A'), not(atom('B')), atom('C'))), &[], &['B']), | ------------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 436 | Value::Expr(expr!(and(atom('A'), atom('C')))) | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 436 | Value::Expr(expr!(and(atom('A'), atom('C')))) | -------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 439 | eval(&expr!(and(atom('A'), not(atom('B')), atom('C'))), &['B'], &[]), | ------------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 439 | eval(&expr!(and(atom('A'), not(atom('B')), atom('C'))), &['B'], &[]), | ------------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 439 | eval(&expr!(and(atom('A'), not(atom('B')), atom('C'))), &['B'], &[]), | ------------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 444 | eval(&expr!(or(atom('A'), not(atom('B')), atom('C'))), &[], &['B']), | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 444 | eval(&expr!(or(atom('A'), not(atom('B')), atom('C'))), &[], &['B']), | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 444 | eval(&expr!(or(atom('A'), not(atom('B')), atom('C'))), &[], &['B']), | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 448 | eval(&expr!(or(atom('A'), not(atom('B')), atom('C'))), &['B'], &[]), | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 448 | eval(&expr!(or(atom('A'), not(atom('B')), atom('C'))), &['B'], &[]), | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 448 | eval(&expr!(or(atom('A'), not(atom('B')), atom('C'))), &['B'], &[]), | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 449 | Value::Expr(expr!(or(atom('A'), atom('C')))) | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 449 | Value::Expr(expr!(or(atom('A'), atom('C')))) | ------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 458 | eval(&expr!(and(atom('A'), atom('B'), atom('C'))), &['A', 'C'], &[]), | ------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 458 | eval(&expr!(and(atom('A'), atom('B'), atom('C'))), &['A', 'C'], &[]), | ------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 459 | Value::Expr(expr!(atom('B'))) | ---------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 462 | eval(&expr!(or(atom('A'), atom('B'), atom('C'))), &[], &['A', 'C']), | ------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 462 | eval(&expr!(or(atom('A'), atom('B'), atom('C'))), &[], &['A', 'C']), | ------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 463 | Value::Expr(expr!(atom('B'))) | ---------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 467 | eval(&expr!(and(atom('A'), not(atom('B')), atom('C'))), &['A', 'C'], &[]), | ------------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 467 | eval(&expr!(and(atom('A'), not(atom('B')), atom('C'))), &['A', 'C'], &[]), | ------------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 467 | eval(&expr!(and(atom('A'), not(atom('B')), atom('C'))), &['A', 'C'], &[]), | ------------------------------------------------ in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 468 | Value::Expr(expr!(not(atom('B')))) | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 468 | Value::Expr(expr!(not(atom('B')))) | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 471 | eval(&expr!(or(atom('A'), not(atom('B')), atom('C'))), &[], &['A', 'C']), | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 471 | eval(&expr!(or(atom('A'), not(atom('B')), atom('C'))), &[], &['A', 'C']), | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 471 | eval(&expr!(or(atom('A'), not(atom('B')), atom('C'))), &[], &['A', 'C']), | ----------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 472 | Value::Expr(expr!(not(atom('B')))) | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 472 | Value::Expr(expr!(not(atom('B')))) | --------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 482 | &expr!(or( | __________________- 483 | | atom('X'), 484 | | and(atom('A'), atom('B')), 485 | | not(and(atom('C'), atom('D'))), 486 | | atom('Y') 487 | | )), | |__________________- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 482 | &expr!(or( | __________________- 483 | | atom('X'), 484 | | and(atom('A'), atom('B')), 485 | | not(and(atom('C'), atom('D'))), 486 | | atom('Y') 487 | | )), | |__________________- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:36:9 | 36 | Expr::And(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 482 | &expr!(or( | __________________- 483 | | atom('X'), 484 | | and(atom('A'), atom('B')), 485 | | not(and(atom('C'), atom('D'))), 486 | | atom('Y') 487 | | )), | |__________________- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 36 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 36 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 482 | &expr!(or( | __________________- 483 | | atom('X'), 484 | | and(atom('A'), atom('B')), 485 | | not(and(atom('C'), atom('D'))), 486 | | atom('Y') 487 | | )), | |__________________- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:39:9 | 39 | Expr::Or(vec![$( expr!($tag($( $e )*)) ),*]) | ^^^^ use of undeclared type `Expr` ... 491 | Value::Expr(expr!(or(atom('X'), atom('B'), not(atom('D')), atom('Y')))) | ---------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 39 | crate::solution_test::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 39 | solution::Value(vec![$( expr!($tag($( $e )*)) ),*]) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:30:9 | 30 | Expr::Atom($c) | ^^^^ use of undeclared type `Expr` ... 491 | Value::Expr(expr!(or(atom('X'), atom('B'), not(atom('D')), atom('Y')))) | ---------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 30 | crate::solution_test::Value($c) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 30 | solution::Value($c) | ~~~~~~~~~~~~~~~ error[E0433]: failed to resolve: use of undeclared type `Expr` --> tests/solution_test.rs:33:9 | 33 | Expr::Not(Box::new(expr!( $tag($( $e )*) ))) | ^^^^ use of undeclared type `Expr` ... 491 | Value::Expr(expr!(or(atom('X'), atom('B'), not(atom('D')), atom('Y')))) | ---------------------------------------------------------- in this macro invocation | = note: this error originates in the macro `expr` (in Nightly builds, run with -Z macro-backtrace for more info) help: there is an enum variant `crate::solution_test::Value::Expr` and 1 other; try using the variant's enum | 33 | crate::solution_test::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ 33 | solution::Value(Box::new(expr!( $tag($( $e )*) ))) | ~~~~~~~~~~~~~~~ For more information about this error, try `rustc --explain E0433`. error: could not compile `solution` due to 237 previous errors