We currently allow unqualified lookup for instance methods but not
static methods because we can't recover with a semantic 'this->'
insertion.
ATL headers have static methods that do unqualified lookup into
dependent base classes. The pattern looks like:
template <typename T> struct Foo : T { static int *getBarFromT() { return Bar; } };
Now we recover as if the user had written:
template <typename T> struct Foo : T { static int *getBarFromT() { return Foo::Bar; } };
... which will eventually look up Bar in T at instantiation time.
Now we also emit a diagnostic in both cases.