mirror of
https://github.com/tinygo-org/tinygo.git
synced 2026-08-17 11:13:27 +00:00
compiler: implement Field expression
This expression is used when calling a method on an embedded type in a struct.
This commit is contained in:
@@ -1708,6 +1708,13 @@ func (c *Compiler) parseExpr(frame *Frame, expr ssa.Value) (llvm.Value, error) {
|
|||||||
}
|
}
|
||||||
result := c.builder.CreateExtractValue(value, expr.Index, "")
|
result := c.builder.CreateExtractValue(value, expr.Index, "")
|
||||||
return result, nil
|
return result, nil
|
||||||
|
case *ssa.Field:
|
||||||
|
value, err := c.parseExpr(frame, expr.X)
|
||||||
|
if err != nil {
|
||||||
|
return llvm.Value{}, err
|
||||||
|
}
|
||||||
|
result := c.builder.CreateExtractValue(value, expr.Field, "")
|
||||||
|
return result, nil
|
||||||
case *ssa.FieldAddr:
|
case *ssa.FieldAddr:
|
||||||
val, err := c.parseExpr(frame, expr.X)
|
val, err := c.parseExpr(frame, expr.X)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user