diff options
| author | Marc Vertes <mvertes@free.fr> | 2024-07-18 12:56:29 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-18 12:56:29 +0200 |
| commit | dabd9e5eb81bbc9aeaeb32fb3e3ce83eef258a77 (patch) | |
| tree | 32be6a4cecf83487dd6a91e8a9aa1da709840b0f /scanner | |
| parent | 1a2b2cb565ebf701f43012e1fce5552398d622a9 (diff) | |
fix (parser): don't panic if assign of define untyped value (#10)
* fix (parser): don't panic if assign of define untyped value
In case of defining or assigning to untyped value, the type has
to be taken from the source value instead of the target value.
The vm test coverage has also been slightly improved.
* fix and simplify Token.Name()
* improve parser errors
Diffstat (limited to 'scanner')
| -rw-r--r-- | scanner/scan.go | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/scanner/scan.go b/scanner/scan.go index 6ea99a9..2782788 100644 --- a/scanner/scan.go +++ b/scanner/scan.go @@ -34,14 +34,13 @@ func (t *Token) Prefix() string { return t.Str[:t.Beg] } // Name return the name of t (short string for debugging). func (t *Token) Name() string { - name := t.Str - if t.Beg > 1 { - return name[:t.Beg] + ".." + if len(t.Str) == 0 { + return "" } - if t.Beg > 0 { - return name[:t.Beg] + ".." + name[len(name)-t.End:] + if t.Beg > 1 { + return t.Str[:t.Beg] + ".." } - return name + return t.Str[:t.Beg] + ".." + t.Str[len(t.Str)-t.End:] } func (t *Token) String() string { |
