| // Copyright 2023 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. |
| |
| // This file contains tests for the httpmux checker. |
| |
| package a |
| |
| import "net/http" |
| |
| func _() { |
| http.HandleFunc("GET /x", nil) // want "enhanced ServeMux pattern" |
| http.HandleFunc("/{a}/b/", nil) // want "enhanced ServeMux pattern" |
| mux := http.NewServeMux() |
| mux.Handle("example.com/c/{d}", nil) // want "enhanced ServeMux pattern" |
| mux.HandleFunc("/{x...}", nil) // want "enhanced ServeMux pattern" |
| |
| // Should not match. |
| |
| // not an enhanced pattern |
| http.Handle("/", nil) |
| |
| // invalid wildcard; will panic in 1.22 |
| http.HandleFunc("/{/a/}", nil) |
| mux.Handle("/{1}", nil) |
| mux.Handle("/x{a}", nil) |
| |
| // right package, wrong method |
| http.ParseTime("GET /") |
| |
| // right function name, wrong package |
| Handle("GET /", nil) |
| HandleFunc("GET /", nil) |
| |
| // right method name, wrong type |
| var sm ServeMux |
| sm.Handle("example.com/c/{d}", nil) |
| sm.HandleFunc("method /{x...}", nil) |
| } |
| |
| func Handle(pat string, x any) {} |
| func HandleFunc(pat string, x any) {} |
| |
| type ServeMux struct{} |
| |
| func (*ServeMux) Handle(pat string, x any) {} |
| func (*ServeMux) HandleFunc(pat string, x any) {} |