#[pavex::methods] exists to give other macros (e.g. #[pavex::get]) the required context when they are applied to a method.
There is no reason to apply #[pavex::methods] to an impl block that doesn't contain annotated methods. Such an occurrence may be a symptom of the user not having fully internalized the way Pavex's machinery works: we should emit an error with a proper explanation to nudge them in the right direction.
Example
This code snippet should be rejected at compile-time:
pub struct A;
#[pavex::methods]
impl A {
pub fn new() -> Self {
A
}
}