[asp.net] FormsAuthenticationTicket.FromByteArray stops early if it is passed a null...
[mono.git] / mcs / mcs / iterators.cs
index 0cfccd0759e30e75ebce4eef3323a71557d7da67..37a9b00b4d6d39fec8b5aae6876558e6fed27b10 100644 (file)
 
 using System;
 using System.Collections.Generic;
-using System.Reflection;
+
+#if STATIC
+using IKVM.Reflection.Emit;
+#else
 using System.Reflection.Emit;
+#endif
 
 namespace Mono.CSharp {
 
@@ -176,22 +180,20 @@ namespace Mono.CSharp {
                                        if (new_storey != null)
                                                new_storey = Convert.ImplicitConversionRequired (ec, new_storey, host_method.MemberType, loc);
 
-                                       if (TypeManager.int_interlocked_compare_exchange == null) {
-                                               TypeSpec t = TypeManager.CoreLookupType (ec.Compiler, "System.Threading", "Interlocked", MemberKind.Class, true);
-                                               if (t != null) {
-                                                       var p = new ParametersImported (
-                                                               new[] {
+                                       var t = ec.Module.PredefinedTypes.Interlocked.Resolve (loc);
+                                       if (t != null) {
+                                               var p = new ParametersImported (
+                                                       new[] {
                                                                        new ParameterData (null, Parameter.Modifier.REF),
                                                                        new ParameterData (null, Parameter.Modifier.NONE),
                                                                        new ParameterData (null, Parameter.Modifier.NONE)
                                                                },
-                                                               new[] {
+                                                       new[] {
                                                                        TypeManager.int32_type, TypeManager.int32_type, TypeManager.int32_type
                                                                },
-                                                               false);
-                                                       var f = new MemberFilter ("CompareExchange", 0, MemberKind.Method, p, TypeManager.int32_type);
-                                                       TypeManager.int_interlocked_compare_exchange = TypeManager.GetPredefinedMethod (t, f, loc);
-                                               }
+                                                       false);
+                                               var f = new MemberFilter ("CompareExchange", 0, MemberKind.Method, p, TypeManager.int32_type);
+                                               TypeManager.int_interlocked_compare_exchange = TypeManager.GetPredefinedMethod (t, f, loc);
                                        }
 
                                        ec.CurrentBranching.CurrentUsageVector.Goto ();
@@ -371,10 +373,9 @@ namespace Mono.CSharp {
 
                        list.Add (new TypeExpression (TypeManager.idisposable_type, Location));
 
-                       if (TypeManager.generic_ienumerator_type != null) {
-                               generic_enumerator_type = new GenericTypeExpr (
-                                       TypeManager.generic_ienumerator_type,
-                                       generic_args, Location);
+                       var ienumerator_generic = Module.PredefinedTypes.IEnumeratorGeneric;
+                       if (ienumerator_generic.Define ()) {
+                               generic_enumerator_type = new GenericTypeExpr (ienumerator_generic.TypeSpec, generic_args, Location);
                                list.Add (generic_enumerator_type);
                        }
 
@@ -493,7 +494,7 @@ namespace Mono.CSharp {
 
                        reset.Block = new ToplevelBlock (Compiler, Location);
 
-                       TypeSpec ex_type = TypeManager.CoreLookupType (Compiler, "System", "NotSupportedException", MemberKind.Class, true);
+                       TypeSpec ex_type = Module.PredefinedTypes.NotSupportedException.Resolve (Location);
                        if (ex_type == null)
                                return;