diff options
Diffstat (limited to 'build2/target.ixx')
-rw-r--r-- | build2/target.ixx | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/build2/target.ixx b/build2/target.ixx index 16dbf61..242e81d 100644 --- a/build2/target.ixx +++ b/build2/target.ixx @@ -212,7 +212,7 @@ namespace build2 if (k_ == nullptr && g_.count != 0) // Iterating over a normal group. { - if (g_.members == nullptr || // leave_group() + if (g_.members == nullptr || // Special case, see leave_group(). ++j_ > g_.count) g_.count = 0; } @@ -248,7 +248,7 @@ namespace build2 { // Otherwise assume it is a normal group. // - g_ = resolve_group_members (r_->a_, search (*i_)); + g_ = resolve_group_members (r_->a_, search (r_->t_, *i_)); if (g_.members == nullptr) // Members are not know. { @@ -283,6 +283,16 @@ namespace build2 } } + template <typename T> + inline bool prerequisite_members_range<T>::iterator:: + group () const + { + return + k_ != nullptr ? k_->member != nullptr : /* ad hoc */ + g_.count != 0 ? g_.members != nullptr && j_ < g_.count : /* normal */ + false; + } + // mtime_target // inline void mtime_target:: |