summaryrefslogtreecommitdiff
path: root/scanner
diff options
context:
space:
mode:
authorMarc Vertes <mvertes@free.fr>2024-07-18 12:56:29 +0200
committerGitHub <noreply@github.com>2024-07-18 12:56:29 +0200
commitdabd9e5eb81bbc9aeaeb32fb3e3ce83eef258a77 (patch)
tree32be6a4cecf83487dd6a91e8a9aa1da709840b0f /scanner
parent1a2b2cb565ebf701f43012e1fce5552398d622a9 (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.go11
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 {