using System.Diagnostics;
using Mono.CompilerServices.SymbolWriter;
-#if NET_2_1
+#if MOBILE
using XmlElement = System.Object;
#endif
throw new InternalErrorException (tc, e);
}
}
+
+ if (PartialContainer != null && PartialContainer != this) {
+ containers = null;
+ }
}
return true;
public override void ExpandBaseInterfaces ()
{
+ DoResolveTypeParameters ();
+
if (!IsPartialPart)
DoExpandBaseInterfaces ();
protected override void DoDefineContainer ()
{
DefineBaseTypes ();
-
- DoResolveTypeParameters ();
}
//
return base_type;
}
- if (iface_exprs != null) {
+ if (iface_exprs != null && this is Interface) {
foreach (var iface in iface_exprs) {
// the interface might not have been resolved, prevents a crash, see #442144
if (iface == null)
var ifaces = PartialContainer.Interfaces;
if (ifaces != null) {
foreach (TypeSpec t in ifaces){
- if (t == mb.InterfaceType)
+ if (t == mb.InterfaceType || t == null)
return true;
var expanded_base = t.Interfaces;
// return null;
var container = PartialContainer.CurrentType;
- return MemberCache.FindNestedType (container, name, arity);
+ return MemberCache.FindNestedType (container, name, arity, false);
}
public void Mark_HasEquals ()