From 6292a0fd2ebd0f2db486fb48d4e161ba95fdc9a5 Mon Sep 17 00:00:00 2001 From: Ayke van Laethem Date: Wed, 14 Nov 2018 15:43:50 +0100 Subject: [PATCH] compiler: fix bug in for range loop over a named map type --- compiler/compiler.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/compiler.go b/compiler/compiler.go index b2ef1b0a..b482fa10 100644 --- a/compiler/compiler.go +++ b/compiler/compiler.go @@ -2450,11 +2450,11 @@ func (c *Compiler) parseExpr(frame *Frame, expr ssa.Value) (llvm.Value, error) { if expr.IsString { return c.createRuntimeCall("stringNext", []llvm.Value{llvmRangeVal, it}, "range.next"), nil } else { // map - llvmKeyType, err := c.getLLVMType(rangeVal.Type().(*types.Map).Key()) + llvmKeyType, err := c.getLLVMType(rangeVal.Type().Underlying().(*types.Map).Key()) if err != nil { return llvm.Value{}, err } - llvmValueType, err := c.getLLVMType(rangeVal.Type().(*types.Map).Elem()) + llvmValueType, err := c.getLLVMType(rangeVal.Type().Underlying().(*types.Map).Elem()) if err != nil { return llvm.Value{}, err }