internal override DMemberRef GetImplementationInSuperTypes(DType/*!*/ type, bool searchSupertypes, ref bool inSupertype) { if (type == null || type.IsUnknown) return null; do { KnownRoutine result = type.GetDeclaredMethod<KnownRoutine>(Name); if (result != null) { // private members are not visible from subtype: if (result.IsPrivate && inSupertype) break; return new DMemberRef(result, type); } inSupertype = true; type = type.Base; } while (type != null && !type.IsUnknown && searchSupertypes); inSupertype = false; return null; }