* Do the path check on the normal form.
This commit is contained in:
parent
46b631b6c4
commit
7de5fe2fc2
1 changed files with 5 additions and 2 deletions
|
@ -294,9 +294,11 @@ string coerceToString(EvalState & state, Expr e, PathSet & context,
|
||||||
|
|
||||||
|
|
||||||
/* Common implementation of `+', ConcatStrings and `~'. */
|
/* Common implementation of `+', ConcatStrings and `~'. */
|
||||||
static ATerm concatStrings(EvalState & state, const ATermVector & args,
|
static ATerm concatStrings(EvalState & state, ATermVector & args,
|
||||||
string separator = "")
|
string separator = "")
|
||||||
{
|
{
|
||||||
|
if (args.empty()) return makeStr("", PathSet());
|
||||||
|
|
||||||
PathSet context;
|
PathSet context;
|
||||||
std::ostringstream s;
|
std::ostringstream s;
|
||||||
|
|
||||||
|
@ -305,7 +307,8 @@ static ATerm concatStrings(EvalState & state, const ATermVector & args,
|
||||||
paths are copied when they are used in a derivation), and none
|
paths are copied when they are used in a derivation), and none
|
||||||
of the strings are allowed to have contexts. */
|
of the strings are allowed to have contexts. */
|
||||||
ATerm dummy;
|
ATerm dummy;
|
||||||
bool isPath = !args.empty() && matchPath(args.front(), dummy);
|
args.front() = evalExpr(state, args.front());
|
||||||
|
bool isPath = matchPath(args.front(), dummy);
|
||||||
|
|
||||||
for (ATermVector::const_iterator i = args.begin(); i != args.end(); ++i) {
|
for (ATermVector::const_iterator i = args.begin(); i != args.end(); ++i) {
|
||||||
if (i != args.begin()) s << separator;
|
if (i != args.begin()) s << separator;
|
||||||
|
|
Loading…
Reference in a new issue