aboutsummaryrefslogtreecommitdiff
path: root/src/net/http/server.go
diff options
context:
space:
mode:
authorJonathan Amsterdam <jba@google.com>2023-09-19 07:54:09 -0400
committerJonathan Amsterdam <jba@google.com>2023-09-19 18:35:44 +0000
commitad42fedda5f8a1d398d5d9cf6114f85635b49998 (patch)
tree01717be39fb344381075e55066569f2d919d97c9 /src/net/http/server.go
parentbe11422b1ec46fb69b387ef29a521ed42621fe3d (diff)
downloadgo-ad42fedda5f8a1d398d5d9cf6114f85635b49998.tar.xz
net/http: explain why two patterns conflict
It can be difficult to tell at a glance why two patterns conflict, so explain it with example paths. Change-Id: Ie384f0a4ef64f30e6e6898bce4b88027bc81034b Reviewed-on: https://go-review.googlesource.com/c/go/+/529122 Run-TryBot: Jonathan Amsterdam <jba@google.com> Reviewed-by: Damien Neil <dneil@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
Diffstat (limited to 'src/net/http/server.go')
-rw-r--r--src/net/http/server.go5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/net/http/server.go b/src/net/http/server.go
index 629d8d3c62..b9f4a6b448 100644
--- a/src/net/http/server.go
+++ b/src/net/http/server.go
@@ -2655,8 +2655,9 @@ func (mux *ServeMux) registerErr(patstr string, handler Handler) error {
// Check for conflict.
if err := mux.index.possiblyConflictingPatterns(pat, func(pat2 *pattern) error {
if pat.conflictsWith(pat2) {
- return fmt.Errorf("pattern %q (registered at %s) conflicts with pattern %q (registered at %s)",
- pat, pat.loc, pat2, pat2.loc)
+ d := describeConflict(pat, pat2)
+ return fmt.Errorf("pattern %q (registered at %s) conflicts with pattern %q (registered at %s):\n%s",
+ pat, pat.loc, pat2, pat2.loc, d)
}
return nil
}); err != nil {