diff options
-rw-r--r-- | eval.go | 1 | ||||
-rw-r--r-- | rule_parser.go | 6 | ||||
-rw-r--r-- | testcase/target_specific_var_var_name.mk | 2 |
3 files changed, 2 insertions, 7 deletions
@@ -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: |