From 8e708865bf63a77b5e4a38ba44c3c8e6d65a2a16 Mon Sep 17 00:00:00 2001 From: hthieu1110 Date: Mon, 9 Dec 2024 22:33:55 +0700 Subject: [PATCH 1/2] fix: do not allow nil as type declaration --- gnovm/pkg/gnolang/preprocess.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gnovm/pkg/gnolang/preprocess.go b/gnovm/pkg/gnolang/preprocess.go index 6e82786b318..014e5f27663 100644 --- a/gnovm/pkg/gnolang/preprocess.go +++ b/gnovm/pkg/gnolang/preprocess.go @@ -4276,6 +4276,12 @@ func tryPredefine(store Store, last BlockNode, d Decl) (un Name) { if isBlankIdentifier(tx) { panic("cannot use _ as value or type") } + + // do not allow nil as type. + if tx.Name == "nil" { + panic("nil is not a type") + } + if tv := last.GetValueRef(store, tx.Name, true); tv != nil { t = tv.GetType() if dt, ok := t.(*DeclaredType); ok { From 3797946455baa967ce474f64c852bff1fa9eaf36 Mon Sep 17 00:00:00 2001 From: "hieu.ha" Date: Tue, 10 Dec 2024 09:35:21 +0700 Subject: [PATCH 2/2] chore: add test file --- gnovm/tests/files/type40.gno | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 gnovm/tests/files/type40.gno diff --git a/gnovm/tests/files/type40.gno b/gnovm/tests/files/type40.gno new file mode 100644 index 00000000000..26e2bef40d5 --- /dev/null +++ b/gnovm/tests/files/type40.gno @@ -0,0 +1,9 @@ +package main + +type A nil + +func main() { +} + +// Error: +// main/files/type40.gno:3:6: nil is not a type \ No newline at end of file