Skip to content

String indexing: panic #228

@vmarkovtsev

Description

@vmarkovtsev

The following code:

str := "123"
str[0] == '1'

panics with

ng eval panic: reflect: call of reflect.Value.SetInt on uint8 Value
goroutine 1 [running]:
runtime/debug.Stack(0x44, 0x0, 0x0)
	/usr/lib/go-1.9/src/runtime/debug/stack.go:24 +0xa7
runtime/debug.PrintStack()
	/usr/lib/go-1.9/src/runtime/debug/stack.go:16 +0x22
neugram.io/ng/eval.(*Program).Eval.func1(0xc42013a100, 0xc42011f610, 0xc42011f5f8)
	/home/vadim/Projects/go_unix/src/neugram.io/ng/eval/eval.go:476 +0x204
panic(0xbb0f60, 0xc4201985e0)
	/usr/lib/go-1.9/src/runtime/panic.go:491 +0x283
reflect.Value.SetInt(0xb8dc20, 0xc42010462c, 0x188, 0x31)
	/usr/lib/go-1.9/src/reflect/value.go:1429 +0x135
neugram.io/ng/eval.convert(0xbcf2a0, 0xc420104628, 0x99, 0x1163e40, 0xb8dc20, 0xc420104571, 0x88, 0xc4200ff140)
	/home/vadim/Projects/go_unix/src/neugram.io/ng/eval/eval.go:1347 +0x143e
neugram.io/ng/eval.(*Program).evalExpr(0xc42013a100, 0x1159c00, 0xc4200ff5c0, 0x0, 0x0, 0x0)
	/home/vadim/Projects/go_unix/src/neugram.io/ng/eval/eval.go:1428 +0x11b3
neugram.io/ng/eval.(*Program).evalExpr(0xc42013a100, 0x1159c40, 0xc4200fb1c0, 0x0, 0x0, 0x0)
	/home/vadim/Projects/go_unix/src/neugram.io/ng/eval/eval.go:1449 +0x3079
neugram.io/ng/eval.(*Program).evalStmt(0xc42013a100, 0x115a640, 0xc4200ff5f0, 0x0, 0x0, 0x0)
	/home/vadim/Projects/go_unix/src/neugram.io/ng/eval/eval.go:885 +0x4655
neugram.io/ng/eval.(*Program).Eval(0xc42013a100, 0x115a640, 0xc4200ff5f0, 0xc4201540c0, 0x0, 0x0, 0x0, 0x11535c0, 0xc420100c60)
	/home/vadim/Projects/go_unix/src/neugram.io/ng/eval/eval.go:497 +0x38c
main.handleResult(0x1, 0xc420100c40, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
	/home/vadim/Projects/go_unix/src/neugram.io/ng/ng.go:393 +0x7ff
main.loop(0xc400000000)
	/home/vadim/Projects/go_unix/src/neugram.io/ng/ng.go:385 +0x611
main.main()
	/home/vadim/Projects/go_unix/src/neugram.io/ng/ng.go:147 +0x641
ng: ng eval panic: reflect: call of reflect.Value.SetInt on uint8 Value

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions