loader: don't panic when main package is not named 'main'

This can in fact happen in practice, so return an actual error message
instead.
This commit is contained in:
Ayke van Laethem
2024-10-12 10:33:24 +02:00
committed by Ayke
parent 539cc5c47b
commit df724f5827
3 changed files with 13 additions and 2 deletions
+1
View File
@@ -24,6 +24,7 @@ func TestErrors(t *testing.T) {
{name: "cgo"},
{name: "compiler"},
{name: "interp"},
{name: "invalidmain"},
{name: "linker-flashoverflow", target: "cortex-m-qemu"},
{name: "linker-ramoverflow", target: "cortex-m-qemu"},
{name: "linker-undefined", target: "darwin/arm64"},
+6 -2
View File
@@ -418,8 +418,12 @@ func (p *Package) Check() error {
packageName := p.ImportPath
if p == p.program.MainPkg() {
if p.Name != "main" {
// Sanity check. Should not ever trigger.
panic("expected main package to have name 'main'")
return Errors{p, []error{
scanner.Error{
Pos: p.program.fset.Position(p.Files[0].Name.Pos()),
Msg: fmt.Sprintf("expected main package to have name \"main\", not %#v", p.Name),
},
}}
}
packageName = "main"
}
+6
View File
@@ -0,0 +1,6 @@
// some comment to move the first line
package foobar
// ERROR: # command-line-arguments
// ERROR: invalidmain.go:3:9: expected main package to have name "main", not "foobar"