- MemberName name = new MemberName (
- new MemberName ("System.Collections.IEnumerable", Location), "GetEnumerator", Location);
-
-#if GMCS_SOURCE
- Method get_enumerator = new IteratorMethod (this, enumerator_type, 0, name);
-
- name = new MemberName (
- new MemberName ("System.Collections.Generic.IEnumerable", generic_args, Location), "GetEnumerator", Location);
- Method gget_enumerator = new GetEnumeratorMethod (this, generic_enumerator_type, name);
-
- //
- // Just call generic GetEnumerator implementation
- //
- get_enumerator.Block.AddStatement (
- new Return (new Invocation (new DynamicMethodGroupExpr (gget_enumerator, Location), new ArrayList (0)), Location));
-
- AddMethod (get_enumerator);
- AddMethod (gget_enumerator);
-#else
- AddMethod (new GetEnumeratorMethod (this, enumerator_type, name));
-#endif
+ MemberName name = new MemberName (QualifiedAliasMember.GlobalAlias, "System", null, Location);
+ name = new MemberName (name, "Collections", Location);
+ name = new MemberName (name, "IEnumerable", Location);
+ name = new MemberName (name, "GetEnumerator", Location);
+
+ if (generic_enumerator_type != null) {
+ Method get_enumerator = new IteratorMethod (this, enumerator_type, 0, name);
+
+ name = new MemberName (name.Left.Left, "Generic", Location);
+ name = new MemberName (name, "IEnumerable", generic_args, Location);
+ name = new MemberName (name, "GetEnumerator", Location);
+ Method gget_enumerator = new GetEnumeratorMethod (this, generic_enumerator_type, name);
+
+ //
+ // Just call generic GetEnumerator implementation
+ //
+ get_enumerator.Block.AddStatement (
+ new Return (new Invocation (new DynamicMethodGroupExpr (gget_enumerator, Location), null), Location));
+
+ AddMethod (get_enumerator);
+ AddMethod (gget_enumerator);
+ } else {
+ AddMethod (new GetEnumeratorMethod (this, enumerator_type, name));
+ }