The following program compiles, which I find strange.
void f(class s);
using u = s; // ok, but why?
s is a forward declaration of a class inside a function parameter list, and it seems to me it should not be visible outside the function scope.
basic.scope.param seems the obvious place I would find this rule, but I can't work it out. The wording could be somewhere in dcl.dcl, but I'm not sure where to look.
What rule covers this? Optionally, an explanation of why this rule exists would be nice.