diff options
| author | Marc Vertes <mvertes@free.fr> | 2025-03-03 10:49:27 +0100 |
|---|---|---|
| committer | Marc Vertes <mvertes@free.fr> | 2025-03-03 10:49:27 +0100 |
| commit | ab69cd9ba61092650abdff6484b12021182385ce (patch) | |
| tree | 4805a0365fc481df57c8f0b5d45f7f993b9a0ef9 /parser/type.go | |
| parent | dabd9e5eb81bbc9aeaeb32fb3e3ce83eef258a77 (diff) | |
fix: improve structparscan-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.
Diffstat (limited to 'parser/type.go')
| -rw-r--r-- | parser/type.go | 4 |
1 files changed, 2 insertions, 2 deletions
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 } } |
