aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--eval.go1
-rw-r--r--rule_parser.go6
-rw-r--r--testcase/target_specific_var_var_name.mk2
3 files changed, 2 insertions, 7 deletions
diff --git a/eval.go b/eval.go
index 51c0a3a..3654098 100644
--- a/eval.go
+++ b/eval.go
@@ -304,6 +304,7 @@ func (ev *Evaluator) evalMaybeRule(ast *maybeRuleAST) error {
//logf("RULE: %s=%s (%d commands)", lhs, rhs, len(cmds))
if assign != nil {
+ logf("target specific var: %#v", assign)
for _, output := range r.outputs {
ev.setTargetSpecificVar(assign, output)
}
diff --git a/rule_parser.go b/rule_parser.go
index dbfd3d6..70933e2 100644
--- a/rule_parser.go
+++ b/rule_parser.go
@@ -122,12 +122,8 @@ func (r *rule) parseVar(s []byte, rhs expr) (*assignAST, error) {
lhsBytes = trimSpaceBytes(s[:len(s)-1])
op = "="
}
- lhs, _, err := parseExpr(lhsBytes, nil, parseOp{alloc: true})
- if err != nil {
- return nil, err
- }
assign := &assignAST{
- lhs: lhs,
+ lhs: literal(string(lhsBytes)),
rhs: compactExpr(rhs),
op: op,
}
diff --git a/testcase/target_specific_var_var_name.mk b/testcase/target_specific_var_var_name.mk
index bd346b9..103b000 100644
--- a/testcase/target_specific_var_var_name.mk
+++ b/testcase/target_specific_var_var_name.mk
@@ -1,5 +1,3 @@
-# TODO(go): Fix. We are evaluating LHS twice.
-
FOO:=BAR
test: $$(FOO) := FAIL
test: