2010-06-24 Marek Safar <marek.safar@gmail.com>
authorMarek Safar <marek.safar@gmail.com>
Thu, 24 Jun 2010 14:38:46 +0000 (14:38 -0000)
committerMarek Safar <marek.safar@gmail.com>
Thu, 24 Jun 2010 14:38:46 +0000 (14:38 -0000)
* statement.cs, report.cs: Rethrow internal error when reporting is
disabled.

* ecore.cs: Check for identical name only when simple name is set.
Fixes #616667

svn path=/trunk/mcs/; revision=159502

mcs/mcs/ChangeLog
mcs/mcs/ecore.cs
mcs/mcs/report.cs
mcs/mcs/statement.cs

index 8e62931927d3cf44fa3d745be9ee66bfa37b925c..8cc0c355a89b6b9fae4bd376f602e441cfb3db11 100644 (file)
@@ -1,3 +1,11 @@
+2010-06-24  Marek Safar  <marek.safar@gmail.com>
+
+       * statement.cs, report.cs: Rethrow internal error when reporting is
+       disabled.
+       
+       * ecore.cs: Check for identical name only when simple name is set.
+       Fixes #616667
+
 2010-06-24  Marek Safar  <marek.safar@gmail.com>
 
        A fix for bug #616809
index 0e145a3a723727ea90f06e64c5963522890b261a..d49ec12191a8446eb98bd8f1681da1de68f2a631 100644 (file)
@@ -476,7 +476,7 @@ namespace Mono.CSharp {
 
                                return e;
                        } catch (Exception ex) {
-                               if (loc.IsNull || Report.DebugFlags > 0 || ex is CompletionResult)
+                               if (loc.IsNull || Report.DebugFlags > 0 || ex is CompletionResult || ec.Report.IsDisabled)
                                        throw;
 
                                ec.Report.Error (584, loc, "Internal compiler error: {0}", ex.Message);
@@ -3955,7 +3955,7 @@ namespace Mono.CSharp {
 
                        if (best_candidate.Kind == MemberKind.Method) {
                                if (InstanceExpression != null) {
-                                       if (best_candidate.IsStatic) {
+                                       if (best_candidate.IsStatic && simple_name != null) {
                                                InstanceExpression = ProbeIdenticalTypeName (ec, InstanceExpression, simple_name);
                                        }
 
index f9da61be595f263fbfea34ac6e06f97a07eec8e9..6618aa7a7c4b09e9a544545d007d811d3d0fd7d4 100644 (file)
@@ -397,6 +397,12 @@ namespace Mono.CSharp {
                        get { return printer.ErrorsCount; }
                }
 
+               public bool IsDisabled {
+                       get {
+                               return reporting_disabled > 0;
+                       }
+               }
+
                public ReportPrinter Printer {
                        get { return printer; }
                }
index c08273b90d2dabdc646c2b5bc9ebef70186ef2e0..171707052d75c6507a028d82e86b0fb810f64148 100644 (file)
@@ -2746,7 +2746,7 @@ namespace Mono.CSharp {
                                        unreachable = top_level.End ();
                                }
                        } catch (Exception e) {
-                               if (e is CompletionResult)
+                               if (e is CompletionResult || rc.Report.IsDisabled)
                                        throw;
 
                                if (rc.CurrentBlock != null) {