From 54fb34bb1ccfac35addd381921be316302276b1b Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Sat, 2 Apr 2016 09:06:26 +0200 Subject: Add notion of lookup depth, fix bug with NULL overrides --- build2/scope | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'build2/scope') diff --git a/build2/scope b/build2/scope index b4c4e96..0e1bae5 100644 --- a/build2/scope +++ b/build2/scope @@ -130,22 +130,24 @@ namespace build2 lookup find (const variable& var, const target_type* tt, const string* tn) const { - lookup l (find_original (var, tt, tn)); + auto p (find_original (var, tt, tn)); return var.override == nullptr - ? l - : find_override (var, move (l), false); + ? p.first + : find_override (var, move (p), false).first; } - // Implementation details (used by target lookup). + // Implementation details (used by scope target lookup). // - lookup + pair find_original ( const variable&, const target_type* tt, const string* tn, const target_type* gt = nullptr, const string* gn = nullptr) const; - lookup - find_override (const variable&, lookup&& original, bool orig_tspec) const; + pair + find_override (const variable&, + pair&& original, + bool target) const; // Return a value suitable for assignment (or append if you only // want to append to the value from this scope). If the variable -- cgit v1.1