From 440c40f53411054255f41f3efc96ec0a537e234c Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen Date: Fri, 15 Aug 2014 16:16:10 +0200 Subject: [PATCH] don't declare defeat if only cumulative evaluation fails it is entirely plausible that the precise evaluation would succeed, while the cumulative would fail due to some serious inaccuracies introduced by it. such problems would be particularly hard to debug, as we suppress error messages from the cumulative parsing, so the user would get a "Giving up" message without any context. Change-Id: I826b3b1d838808464b551e8ee0d7375d239442a3 Reviewed-by: Gatis Paeglis Reviewed-by: Daniel Teske --- src/plugins/qmakeprojectmanager/qmakenodes.cpp | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index 949f4cec17e..5031c87edfd 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -1713,17 +1713,13 @@ void QmakeProFileNode::setupReader() QmakeProFileNode::EvalResult QmakeProFileNode::evaluate() { - EvalResult evalResult = EvalOk; if (ProFile *pro = m_readerExact->parsedProFile(m_projectFilePath)) { - if (!m_readerExact->accept(pro, QMakeEvaluator::LoadAll)) - evalResult = EvalPartial; - if (!m_readerCumulative->accept(pro, QMakeEvaluator::LoadPreFiles)) - evalResult = EvalFail; + bool exactOk = m_readerExact->accept(pro, QMakeEvaluator::LoadAll); + bool cumulOk = m_readerCumulative->accept(pro, QMakeEvaluator::LoadPreFiles); pro->deref(); - } else { - evalResult = EvalFail; + return exactOk ? EvalOk : cumulOk ? EvalPartial : EvalFail; } - return evalResult; + return EvalFail; } void QmakeProFileNode::asyncEvaluate(QFutureInterface &fi)