Merge pull request #4722 from alexanderkyte/checked_after
[mono.git] / mcs / mcs / visit.cs
index 650f8fe22266cf93bd1cb4b5a485a323a63faf59..fc2aa5e62b830cb238aba7b2308d53e3afbe4d85 100644 (file)
@@ -2,14 +2,16 @@
 // visit.cs: Visitors for parsed dom
 //
 // Authors: Mike Krüger (mkrueger@novell.com)
-//                     Marek Safar (marek.safar@gmail.com)
+//          Marek Safar (marek.safar@gmail.com)
 //
 // Dual licensed under the terms of the MIT X11 or GNU GPL
 //
 // Copyright (c) 2010 Novell, Inc (http://www.novell.com)
+// Copyright 2011 Xamarin Inc
 //
 
 using System;
+using System.Diagnostics;
 
 namespace Mono.CSharp
 {
@@ -17,14 +19,21 @@ namespace Mono.CSharp
        {
                public virtual void Visit (MemberCore member)
                {
-                       Console.WriteLine ("unknown member type: " + member.GetType ());
+                       Debug.Fail ("unknown member type: " + member.GetType ());
                }
 
                void VisitTypeContainer (TypeContainer tc)
                {
-                       //foreach (var member in tc.OrderedAllMembers) {
-                       //    member.Accept (this);
-                       //}
+                       foreach (var container in tc.Containers) {
+                               container.Accept (this);
+                       }
+               }
+
+               void VisitTypeContainer (TypeDefinition tc)
+               {
+                       foreach (var member in tc.Members) {
+                               member.Accept (this);
+                       }
                }
 
                public virtual void Visit (ModuleContainer module)
@@ -32,6 +41,28 @@ namespace Mono.CSharp
                        VisitTypeContainer (module);
                }
 
+               public virtual void Visit (UsingNamespace un)
+               {
+               }
+
+               public virtual void Visit (UsingAliasNamespace uan)
+               {
+               }
+               
+               public virtual void Visit (UsingExternAlias uea)
+               {
+               }
+
+               public virtual void Visit (NamespaceContainer ns)
+               {
+                       VisitTypeContainer (ns);
+               }
+
+               public virtual void Visit (CompilationSourceFile csf)
+               {
+                       VisitTypeContainer (csf);
+               }
+
                public virtual void Visit (Class c)
                {
                        VisitTypeContainer (c);
@@ -106,16 +137,16 @@ namespace Mono.CSharp
 
                public virtual object Visit (Statement stmt)
                {
-                       Console.WriteLine ("unknown statement:" + stmt);
+                       Debug.Fail ("unknown statement:" + stmt);
                        return null;
                }
                
-               public virtual object Visit (BlockVariableDeclaration blockVariableDeclaration)
+               public virtual object Visit (BlockVariable blockVariableDeclaration)
                {
                        return null;
                }
                
-               public virtual object Visit (BlockConstantDeclaration blockConstantDeclaration)
+               public virtual object Visit (BlockConstant blockConstantDeclaration)
                {
                        return null;
                }
@@ -130,6 +161,16 @@ namespace Mono.CSharp
                        return null;
                }
 
+               public virtual object Visit (EmptyExpression emptyExpression)
+               {
+                       return null;
+               }
+               
+               public virtual object Visit (ErrorExpression errorExpression)
+               {
+                       return null;
+               }
+
                public virtual object Visit (If ifStatement)
                {
                        return null;
@@ -141,73 +182,71 @@ namespace Mono.CSharp
                        return null;
                }
 
-
                public virtual object Visit (While whileStatement)
                {
                        return null;
                }
 
-
                public virtual object Visit (For forStatement)
                {
                        return null;
                }
 
-
                public virtual object Visit (StatementExpression statementExpression)
                {
                        return null;
                }
 
+               public virtual object Visit (StatementErrorExpression errorStatement)
+               {
+                       return null;
+               }
 
                public virtual object Visit (Return returnStatement)
                {
                        return null;
                }
 
-
                public virtual object Visit (Goto gotoStatement)
                {
                        return null;
                }
 
-
                public virtual object Visit (LabeledStatement labeledStatement)
                {
                        return null;
                }
 
+               public virtual object Visit (SwitchLabel switchLabel)
+               {
+                       return null;
+               }
 
                public virtual object Visit (GotoDefault gotoDefault)
                {
                        return null;
                }
 
-
                public virtual object Visit (GotoCase gotoCase)
                {
                        return null;
                }
 
-
                public virtual object Visit (Throw throwStatement)
                {
                        return null;
                }
 
-
                public virtual object Visit (Break breakStatement)
                {
                        return null;
                }
 
-
                public virtual object Visit (Continue continueStatement)
                {
                        return null;
                }
 
-
                public virtual object Visit (Block blockStatement)
                {
                        return null;
@@ -228,19 +267,16 @@ namespace Mono.CSharp
                        return null;
                }
 
-
                public virtual object Visit (Unchecked uncheckedStatement)
                {
                        return null;
                }
 
-
                public virtual object Visit (Checked checkedStatement)
                {
                        return null;
                }
 
-
                public virtual object Visit (Unsafe unsafeStatement)
                {
                        return null;
@@ -258,7 +294,6 @@ namespace Mono.CSharp
                        return null;
                }
 
-
                public virtual object Visit (TryCatch tryCatchStatement)
                {
                        return null;
@@ -286,7 +321,7 @@ namespace Mono.CSharp
 
                public virtual object Visit (Expression expression)
                {
-                       Console.WriteLine ("Visit unknown expression:" + expression);
+                       Debug.Fail ("Visit unknown expression:" + expression);
                        return null;
                }
 
@@ -295,6 +330,11 @@ namespace Mono.CSharp
                        return null;
                }
 
+               public virtual object Visit (QualifiedAliasMember qualifiedAliasMember)
+               {
+                       return null;
+               }
+
                public virtual object Visit (LocalVariableReference localVariableReference)
                {
                        return null;
@@ -376,7 +416,6 @@ namespace Mono.CSharp
                        return null;
                }
 
-
                public virtual object Visit (Conditional conditionalExpression)
                {
                        return null;
@@ -392,6 +431,11 @@ namespace Mono.CSharp
                        return null;
                }
 
+               public virtual object Visit (NewAnonymousType newAnonymousType)
+               {
+                       return null;
+               }
+
                public virtual object Visit (NewInitialize newInitializeExpression)
                {
                        return null;
@@ -492,6 +536,11 @@ namespace Mono.CSharp
                        return null;
                }
 
+               public virtual object Visit (Linq.QueryStartClause queryExpression)
+               {
+                       return null;
+               }
+               
                public virtual object Visit (Linq.SelectMany selectMany)
                {
                        return null;
@@ -546,5 +595,26 @@ namespace Mono.CSharp
                {
                        return null;
                }
+               
+               // undocumented expressions
+               public virtual object Visit (RefValueExpr refValueExpr)
+               {
+                       return null;
+               }
+               
+               public virtual object Visit (RefTypeExpr refTypeExpr)
+               {
+                       return null;
+               }
+               
+               public virtual object Visit (MakeRefExpr makeRefExpr)
+               {
+                       return null;
+               }
+
+               public virtual object Visit (Await awaitExpr)
+               {
+                       return null;
+               }
        }
 }
\ No newline at end of file