}
if (e == null) {
- TypeSpec t = LookupNestedTypeInHierarchy (name, arity);
+ TypeSpec t;
+ if (false && MemberName.Name == name && MemberName.Arity == arity) {
+ t = spec;
+ } else
+ {
+ t = LookupNestedTypeInHierarchy (name, arity);
+ }
if (t != null)
e = new TypeExpression (t, Location.Null);
return tp_b != null && tp_a.IsMethodOwned == tp_b.IsMethodOwned && tp_a.DeclaredPosition == tp_b.DeclaredPosition;
}
- if (a.TypeArguments.Length != b.TypeArguments.Length)
- return false;
-
- if (a.TypeArguments.Length != 0) {
- if (a.MemberDefinition != b.MemberDefinition)
- return false;
-
- for (int i = 0; i < a.TypeArguments.Length; ++i) {
- if (!IsEqual (a.TypeArguments[i], b.TypeArguments[i]))
- return false;
- }
-
- return true;
- }
-
var ac_a = a as ArrayContainer;
if (ac_a != null) {
var ac_b = b as ArrayContainer;
}
if (a == InternalType.Dynamic || b == InternalType.Dynamic)
- return b == TypeManager.object_type || a == TypeManager.object_type;
-
- return false;
+ return b == TypeManager.object_type || a == TypeManager.object_type;\r
+\r
+ if (a.MemberDefinition != b.MemberDefinition)\r
+ return false;\r
+\r
+ do {\r
+ for (int i = 0; i < a.TypeArguments.Length; ++i) {\r
+ if (!IsEqual (a.TypeArguments[i], b.TypeArguments[i]))\r
+ return false;\r
+ }\r
+\r
+ a = a.DeclaringType;\r
+ b = b.DeclaringType;\r
+ } while (a != null);
+\r
+ return true;\r
}
//
</method>
</type>
</test>
+ <test name="gtest-541.cs">
+ <type name="Foo">
+ <method name="Void .ctor()">
+ <size>7</size>
+ </method>
+ </type>
+ <type name="Top`1[S]">
+ <method name="Void .ctor()">
+ <size>7</size>
+ </method>
+ </type>
+ <type name="Top`1+Base`1[S,T]">
+ <method name="Void .ctor()">
+ <size>7</size>
+ </method>
+ </type>
+ <type name="Top`1+Base`1+Derived`1[S,T,U]">
+ <method name="Void Test()">
+ <size>1</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>7</size>
+ </method>
+ </type>
+ <type name="Test">
+ <method name="Int32 Main()">
+ <size>14</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>7</size>
+ </method>
+ </type>
+ </test>
+ <test name="gtest-542.cs">
+ <type name="A`1[T]">
+ <method name="T getT()">
+ <size>0</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>7</size>
+ </method>
+ </type>
+ <type name="A`1+B[T]">
+ <method name="A`1+B[T] getT()">
+ <size>2</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>7</size>
+ </method>
+ </type>
+ <type name="C">
+ <method name="Int32 Main()">
+ <size>22</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>7</size>
+ </method>
+ </type>
+ </test>
<test name="gtest-anon-1.cs">
<type name="X">
<method name="Void .ctor()">
</method>
</type>
</test>
- <test name="test-471.cs">
- <type name="AAttribute">
- <method name="Void .ctor()">
- <size>7</size>
- </method>
- </type>
- <type name="Demo">
- <method name="Void .ctor()">
- <size>7</size>
- </method>
- <method name="Void Main()">
- <size>1</size>
- </method>
- </type>
- </test>
<test name="test-472.cs">
<type name="Test">
<method name="Void .ctor()">
</method>
</type>
</test>
+ <test name="test-629.cs">
+ <type name="Foo">
+ <method name="Void Main()">
+ <size>1</size>
+ </method>
+ <method name="Void .ctor()">
+ <size>7</size>
+ </method>
+ </type>
+ <type name="Foo+Nested">
+ <method name="Int32 get_Bar()">
+ <size>2</size>
+ </method>
+ </type>
+ </test>
<test name="test-63.cs">
<type name="X">
<method name="Void .ctor()">