aboutsummaryrefslogtreecommitdiff
path: root/serialize.go
diff options
context:
space:
mode:
authorShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-04-28 04:25:37 +0900
committerShinichiro Hamaji <shinichiro.hamaji@gmail.com>2015-04-28 16:19:41 +0900
commitf8f075c5176a9d5277bfdd2e730acc0aca9fbde2 (patch)
tree634b85d361824b2372322dc92d0bb67d52c34f33 /serialize.go
parente666ac8315a423f81416844c6b219a6a1692c14e (diff)
downloadkati-f8f075c5176a9d5277bfdd2e730acc0aca9fbde2.tar.gz
Fix all serialization
Diffstat (limited to 'serialize.go')
-rw-r--r--serialize.go12
1 files changed, 8 insertions, 4 deletions
diff --git a/serialize.go b/serialize.go
index 2cc3812..354797b 100644
--- a/serialize.go
+++ b/serialize.go
@@ -142,6 +142,13 @@ func DeserializeVar(sv SerializableVar) (r Value) {
expr: DeserializeSingleChild(sv),
origin: sv.Origin,
}
+
+ case ":=", "=", "+=", "?=":
+ return TargetSpecificVar{
+ v: DeserializeSingleChild(sv).(Var),
+ op: sv.Type,
+ }
+
default:
panic(fmt.Sprintf("unknown serialized variable type: %q", sv))
}
@@ -172,10 +179,7 @@ func DeserializeNodes(nodes []*SerializableDepNode) (r []*DepNode) {
}
for k, v := range n.TargetSpecificVars {
- d.TargetSpecificVars[k] = TargetSpecificVar{
- v: DeserializeVar(v.Children[0]).(Var),
- op: v.Type,
- }
+ d.TargetSpecificVars[k] = DeserializeVar(v).(Var)
}
nodeMap[n.Output] = d