forked from TrueCloudLab/neoneo-go
compiler: allow to convert string constants to []byte
Also load constant directly into stack, not by name.
This commit is contained in:
parent
1cfad9ccb8
commit
d65d6ab08d
2 changed files with 30 additions and 5 deletions
|
@ -349,6 +349,8 @@ func (c *codegen) Visit(node ast.Node) ast.Visitor {
|
|||
return nil
|
||||
}
|
||||
c.emitLoadConst(value)
|
||||
} else if tv := c.typeInfo.Types[n]; tv.Value != nil {
|
||||
c.emitLoadConst(tv)
|
||||
} else {
|
||||
c.emitLoadLocal(n.Name)
|
||||
}
|
||||
|
@ -481,11 +483,9 @@ func (c *codegen) Visit(node ast.Node) ast.Visitor {
|
|||
return nil
|
||||
}
|
||||
case *ast.ArrayType:
|
||||
// For now we will assume that there is only 1 argument passed which
|
||||
// will be a basic literal (string kind). This only to handle string
|
||||
// to byte slice conversions. E.G. []byte("foobar")
|
||||
arg := n.Args[0].(*ast.BasicLit)
|
||||
c.emitLoadConst(c.typeInfo.Types[arg])
|
||||
// For now we will assume that there are only byte slice conversions.
|
||||
// E.g. []byte("foobar") or []byte(scriptHash).
|
||||
ast.Walk(c, n.Args[0])
|
||||
return nil
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue