From 013fd5abfed3728e247d41e5b075e5ca515e6d77 Mon Sep 17 00:00:00 2001 From: Alexander Medvednikov Date: Thu, 19 Mar 2020 08:49:47 +0100 Subject: [PATCH] cgen: fix array.last() --- vlib/v/gen/cgen.v | 6 ++++-- vlib/v/parser/parser.v | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/vlib/v/gen/cgen.v b/vlib/v/gen/cgen.v index ba83a56f63..55be43404e 100644 --- a/vlib/v/gen/cgen.v +++ b/vlib/v/gen/cgen.v @@ -748,7 +748,9 @@ fn (g mut Gen) expr(node ast.Expr) { mut receiver_name := typ_sym.name if typ_sym.kind == .array && it.name in // TODO performance, detect `array` method differently - ['repeat', 'sort_with_compare', 'free', 'push_many', 'trim', 'first', 'clone'] { + ['repeat', 'sort_with_compare', 'free', 'push_many', 'trim', + // + 'first', 'last', 'clone'] { // && rec_sym.name == 'array' { // && rec_sym.name == 'array' && receiver_name.starts_with('array') { // `array_byte_clone` => `array_clone` @@ -1367,10 +1369,10 @@ fn (g mut Gen) const_decl(node ast.ConstDecl) { // { user | name: 'new name' } fn (g mut Gen) assoc(node ast.Assoc) { + g.writeln('// assoc') if node.typ == 0 { return } - g.writeln('// assoc') styp := g.typ(node.typ) g.writeln('($styp){') for i, field in node.fields { diff --git a/vlib/v/parser/parser.v b/vlib/v/parser/parser.v index 60bb585dc8..5b7cb6f08a 100644 --- a/vlib/v/parser/parser.v +++ b/vlib/v/parser/parser.v @@ -794,6 +794,7 @@ pub fn (p mut Parser) expr(precedence int) ast.Expr { p.error('unknown variable `$name`') return node } + println('assoc var $name typ=$var.typ') mut fields := []string mut vals := []ast.Expr p.check(.pipe)