Remove Thread.[Abort|Suspend|Resume] from TvOS/WatchOS.
[mono.git] / mcs / mcs / eval.cs
index c1ea5aaa576529d7963787e2f9a7736cf9900871..62c02b1fd5602de8f4a01d5096f183472d3d2b9a 100644 (file)
@@ -192,8 +192,13 @@ namespace Mono.CSharp
                        if (!inited || !invoking)
                                return;
                        
-                       if (invoke_thread != null)
+                       if (invoke_thread != null) {
+#if MONO_FEATURE_THREAD_ABORT
                                invoke_thread.Abort ();
+#else
+                               invoke_thread.Interrupt ();
+#endif
+                       }
                }
 
                /// <summary>
@@ -367,9 +372,14 @@ namespace Mono.CSharp
                                invoke_thread = System.Threading.Thread.CurrentThread;
                                invoking = true;
                                compiled (ref retval);
+#if MONO_FEATURE_THREAD_ABORT
                        } catch (ThreadAbortException e){
                                Thread.ResetAbort ();
                                Console.WriteLine ("Interrupted!\n{0}", e);
+#else
+                       } catch (ThreadInterruptedException e) {
+                               Console.WriteLine ("Interrupted!\n{0}", e);
+#endif
                        } finally {
                                invoking = false;
 
@@ -415,11 +425,7 @@ namespace Mono.CSharp
                                };
                                host.SetBaseTypes (baseclass_list);
 
-#if NET_4_0
                                var access = AssemblyBuilderAccess.RunAndCollect;
-#else
-                               var access = AssemblyBuilderAccess.Run;
-#endif
                                var a = new AssemblyDefinitionDynamic (module, "completions");
                                a.Create (AppDomain.CurrentDomain, access);
                                module.SetDeclaringAssembly (a);
@@ -521,6 +527,7 @@ namespace Mono.CSharp
                        // These are toplevels
                        case Token.EXTERN:
                        case Token.OPEN_BRACKET:
+                       case Token.OPEN_BRACKET_EXPR:
                        case Token.ABSTRACT:
                        case Token.CLASS:
                        case Token.ENUM:
@@ -560,7 +567,7 @@ namespace Mono.CSharp
                                if (t == Token.EOF)
                                        return InputKind.EOF;
 
-                               if (t == Token.IDENTIFIER)
+                               if (t == Token.IDENTIFIER || t == Token.STATIC)
                                        return InputKind.CompilationUnit;
                                return InputKind.StatementOrExpression;
 
@@ -693,11 +700,7 @@ namespace Mono.CSharp
                                assembly = new AssemblyDefinitionDynamic (module, current_debug_name, current_debug_name);
                                assembly.Importer = importer;
                        } else {
-#if NET_4_0
                                access = AssemblyBuilderAccess.RunAndCollect;
-#else
-                               access = AssemblyBuilderAccess.Run;
-#endif
                                assembly = new AssemblyDefinitionDynamic (module, current_debug_name);
                        }