Example #1
0
		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;
		}