fix method assignement

This commit is contained in:
Marc Vertes
2018-11-07 22:49:17 +01:00
parent 314ceb15a7
commit 80aa5f330d
4 changed files with 4 additions and 8 deletions

View File

@@ -3,9 +3,7 @@ package main
type adder func(int, int) int
func genAdd(k int) adder {
println("k:", k)
return func(i, j int) int {
println("#1 k:", k)
return i + j + k
}
}

View File

@@ -413,7 +413,6 @@ func (interp *Interpreter) Cfg(root *Node) []*Node {
} else {
scope.size += n.fsize
}
n.recv = n.child[0].recv
/*
else if n.child[0].kind == SelectorImport {
@@ -713,7 +712,9 @@ func (interp *Interpreter) Cfg(root *Node) []*Node {
n.val = nil
}
}
n.recv = n.sym.recv
if n.sym != nil {
n.recv = n.sym.recv
}
} else {
if n.ident == "_" || n.anc.kind == Define || n.anc.kind == DefineX || n.anc.kind == RangeStmt || n.anc.kind == ValueSpec {
// Create a new local symbol for func argument or local var definition

View File

@@ -541,9 +541,7 @@ package main
type adder func(int, int) int
func genAdd(k int) adder {
println("k:", k)
return func(i, j int) int {
println("#1 k:", k)
return i + j + k
}
}

View File

@@ -546,7 +546,7 @@ func call(n *Node) {
}
// copy input parameters from caller
for i, v := range values {
//log.Println(n.index, i, def.framepos[i], nf.data[def.framepos[i]].Kind(), v(f).Kind())
log.Println(n.index, i, def.framepos[i], nf.data[def.framepos[i]].Kind(), v(f).Kind())
nf.data[def.framepos[i]].Set(v(f))
}
@@ -751,7 +751,6 @@ func getPtrIndex(n *Node) {
value := genValue(n.child[0])
n.exec = func(f *Frame) Builtin {
log.Println(n.index, "in getPtrIndex")
// if error, fallback to getIndex, to make receiver methods work both with pointers and objects
//if a, ok := value0(f).(*interface{}); ok {
// f.data[i] = (*a).([]interface{})[value1(f).(int)]