blob: b9809a7c00dd5a8b5203c6b5de2d0799f85db800 [file] [edit]
// Copyright 2026 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package midway
import (
"cmd/compile/internal/base"
"cmd/compile/internal/syntax"
)
// CheckPositions checks that all nodes in the files have known positions.
// This converts lack-of-Pos into an early fatal error instead of a later
// weird downstream error (e.g., in the linker, in debugging information).
func CheckPositions(files []*syntax.File, phase string) {
for _, file := range files {
syntax.Inspect(file, func(n syntax.Node) bool {
if n == nil {
return true
}
if !n.Pos().IsKnown() {
base.Fatalf("Phase %s, Node without known position: %T\n", phase, n)
}
return true
})
}
}