Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Framework/Core/src/DataDescriptorMatcher.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -454,7 +454,8 @@ std::ostream& operator<<(std::ostream& os, DataDescriptorMatcher const& matcher)
auto edgeWalker = overloaded{
[&os](EdgeActions::EnterNode action) {
os << "(" << action.node->mOp;
if (action.node->mOp == DataDescriptorMatcher::Op::Just) {
if (action.node->mOp == DataDescriptorMatcher::Op::Just ||
action.node->mOp == DataDescriptorMatcher::Op::Not) {
return ChildAction::VisitLeft;
}
return ChildAction::VisitBoth;
Expand Down
13 changes: 7 additions & 6 deletions Framework/Core/src/DataSpecUtils.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,8 @@ MatcherInfo extractMatcherInfo(DataDescriptorMatcher const& top)
state.hasError = true;
return VisitNone;
}
if (action.node->getOp() == ops::Just) {
if (action.node->getOp() == ops::Just ||
action.node->getOp() == ops::Not) {
return VisitLeft;
}
return VisitBoth;
Expand Down Expand Up @@ -510,7 +511,8 @@ DataDescriptorMatcher DataSpecUtils::dataDescriptorMatcherFrom(ConcreteDataTypeM
auto timeDescriptionMatcher = std::make_unique<DataDescriptorMatcher>(
DataDescriptorMatcher::Op::And,
DescriptionValueMatcher{dataType.description.as<std::string>()},
StartTimeValueMatcher(ContextRef{0}));
std::make_unique<DataDescriptorMatcher>(DataDescriptorMatcher::Op::Just,
Comment thread
matthiasrichter marked this conversation as resolved.
Outdated
StartTimeValueMatcher{ContextRef{0}}));
return std::move(DataDescriptorMatcher(
DataDescriptorMatcher::Op::And,
OriginValueMatcher{dataType.origin.as<std::string>()},
Expand Down Expand Up @@ -564,12 +566,11 @@ std::optional<framework::ConcreteDataMatcher> DataSpecUtils::optionalConcreteDat
if (state.hasError) {
return VisitNone;
}
// a ConcreteDataMatcher requires either 'and' or 'just'
// operations and we return the corresponding action for these
if (action.node->getOp() == ops::Just) {
return VisitLeft;
}
// a ConcreteDataMatcher requires only 'and' operations
// which have an OR, so we reset all the uniqueness attributes.
if (action.node->getOp() == ops::And) {
} else if (action.node->getOp() == ops::And) {
return VisitBoth;
}
// simply use the error state to indicate that the operation does not match the
Expand Down