From 26146d391f179dd9e4e5e1f70a52ba99d6a0847d Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 1 Apr 2016 09:49:18 +0200 Subject: Get part of variable override implementation --- build2/scope | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'build2/scope') diff --git a/build2/scope b/build2/scope index 6050bf8..b4c4e96 100644 --- a/build2/scope +++ b/build2/scope @@ -128,9 +128,24 @@ namespace build2 } lookup - find (const variable&, - const target_type* tt, const string* tn, - const target_type* gt = nullptr, const string* gn = nullptr) const; + find (const variable& var, const target_type* tt, const string* tn) const + { + lookup l (find_original (var, tt, tn)); + return var.override == nullptr + ? l + : find_override (var, move (l), false); + } + + // Implementation details (used by target lookup). + // + lookup + 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; // 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