compiler: implement Field expression

This expression is used when calling a method on an embedded type in a
struct.
This commit is contained in:
Ayke van Laethem
2018-09-02 21:14:33 +02:00
parent 9519f989bc
commit 1170cdc21f
+7
View File
@@ -1708,6 +1708,13 @@ func (c *Compiler) parseExpr(frame *Frame, expr ssa.Value) (llvm.Value, error) {
}
result := c.builder.CreateExtractValue(value, expr.Index, "")
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:
val, err := c.parseExpr(frame, expr.X)
if err != nil {