blob: 4f7046a41a9acbdcf30f8833c963dfc708fe51d4 [file] [log] [blame]
// Copyright 2025 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 unify
import (
"fmt"
)
type Pos struct {
Path string
Line int
}
func (p Pos) String() string {
var b []byte
b, _ = p.AppendText(b)
return string(b)
}
func (p Pos) AppendText(b []byte) ([]byte, error) {
if p.Line == 0 {
if p.Path == "" {
return append(b, "?:?"...), nil
} else {
return append(b, p.Path...), nil
}
} else if p.Path == "" {
return fmt.Appendf(b, "?:%d", p.Line), nil
}
return fmt.Appendf(b, "%s:%d", p.Path, p.Line), nil
}