Community
Participate
Working Groups
template <char I> struct A { static A<I>* get(); }; template <char J> void test() { A<J>::get()./*cursor*/ } in the above example fFieldOwner of the return type (EvalID) is null. Alternatively, if you wrap the above test method inside another class, that class becomes the fieldOwner. As a consequence lookups in the ownerType will simply yield nothing. Referring to the get method inside class A works though. I'm not sure how to fix this right now.
For static calls, EvalID.fNameOwner is used rather than fFieldOwner. Notice how EvalID.instantiate() will perform a lookup (via resolveName()) in either the name owner or the field owner, preferring the name owner if there is one. Similarly, HeuristicResolver.resolveEvalType() should try to lookInside() the name owner, too.