From ab69cd9ba61092650abdff6484b12021182385ce Mon Sep 17 00:00:00 2001 From: Marc Vertes Date: Mon, 3 Mar 2025 10:49:27 +0100 Subject: fix: improve struct Use 'unsafe' to modify private struct fields, allowing to keep unmodified field names: before they were prefixed with a capital. Parse package statement. Provide a also a default package name for REPL and tests. The support of packages is still incomplete. --- parser/type.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'parser/type.go') diff --git a/parser/type.go b/parser/type.go index e25431a..b1b25dc 100644 --- a/parser/type.go +++ b/parser/type.go @@ -104,7 +104,7 @@ func (p *Parser) parseTypeExpr(in Tokens) (typ *vm.Type, err error) { if !ok || s.kind != symType { return nil, fmt.Errorf("%w: %s", ErrInvalidType, in[0].Str) } - return s.Type, nil + return s.typ, nil case lang.Struct: if len(in) != 2 || in[1].Tok != lang.BraceBlock { @@ -120,7 +120,7 @@ func (p *Parser) parseTypeExpr(in Tokens) (typ *vm.Type, err error) { return nil, err } for i, name := range names { - fields = append(fields, &vm.Type{Name: name, Rtype: types[i].Rtype}) + fields = append(fields, &vm.Type{Name: name, PkgPath: p.pkgName, Rtype: types[i].Rtype}) // TODO: handle embedded fields } } -- cgit v1.2.3