diff options
author | Melody Horn <melody@boringcactus.com> | 2021-04-05 15:52:55 -0600 |
---|---|---|
committer | Melody Horn <melody@boringcactus.com> | 2021-04-05 15:52:55 -0600 |
commit | 5574b575eb09d8121d870fbabe46e7606e6c81eb (patch) | |
tree | c5f6bbcb4f5e1354a4ae39fd908e35aad4869b69 | |
parent | 31dc26284db364f55fd595c94123f5ba836ebaae (diff) | |
download | makers-5574b575eb09d8121d870fbabe46e7606e6c81eb.tar.gz makers-5574b575eb09d8121d870fbabe46e7606e6c81eb.zip |
skip if any conditional is skipping, not just innermost
-rw-r--r-- | src/makefile/conditional.rs | 3 | ||||
-rw-r--r-- | src/makefile/input.rs | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/src/makefile/conditional.rs b/src/makefile/conditional.rs index 4490e8c..989dfc9 100644 --- a/src/makefile/conditional.rs +++ b/src/makefile/conditional.rs @@ -2,6 +2,7 @@ use eyre::{bail, Result}; use super::token::TokenString; +#[derive(Debug)] pub enum Line { /// spelled "ifeq" IfEqual(TokenString, TokenString), @@ -19,6 +20,7 @@ pub enum Line { EndIf, } +#[derive(Debug)] pub enum State { /// we saw a conditional, the condition was true, we're executing now /// and if we hit an else we will start SkippingUntilEndIf @@ -42,6 +44,7 @@ impl State { } } +#[derive(Debug)] pub enum StateAction { Push(State), Replace(State), diff --git a/src/makefile/input.rs b/src/makefile/input.rs index d90378d..5dfaed7 100644 --- a/src/makefile/input.rs +++ b/src/makefile/input.rs @@ -373,8 +373,8 @@ impl<'a, 'parent, R: BufRead> MakefileReader<'a, 'parent, R> { // skip lines if we need to if self .conditional_stack - .last() - .map_or(false, ConditionalState::skipping) + .iter() + .any(ConditionalState::skipping) { continue; } |