Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision b5c5684d38741cc1fee5bb12939570bd0322a24d)
+++ src/ResolvExpr/Resolver.cc	(revision bfbf97fd336a16f671edb54bfb2f2bfafc74da32)
@@ -10,6 +10,6 @@
 // Created On       : Sun May 17 12:17:01 2015
 // Last Modified By : Rob Schluntz
-// Last Modified On : Wed Jun 10 15:32:16 2015
-// Update Count     : 45
+// Last Modified On : Wed Jun 10 16:11:19 2015
+// Update Count     : 77
 //
 
@@ -37,4 +37,5 @@
 		virtual void visit( ObjectDecl *functionDecl );
 		virtual void visit( TypeDecl *typeDecl );
+		virtual void visit( ArrayType * at );
 
 		virtual void visit( ExprStmt *exprStmt );
@@ -157,14 +158,16 @@
 		initContext = new_type;
 		SymTab::Indexer::visit( objectDecl );
-
-		if ( ArrayType * at = dynamic_cast< ArrayType * >( new_type ) ){
-			if ( at->get_dimension() ) {
-				BasicType arrayLenType = BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt );
-				CastExpr *castExpr = new CastExpr( at->get_dimension(), arrayLenType.clone() );
-				Expression *newExpr = findSingleExpression( castExpr, *this );
-				delete at->get_dimension();
-				at->set_dimension( newExpr );
-			}
-		}
+	}
+
+	void Resolver::visit( ArrayType * at ) {
+		if ( at->get_dimension() ) {
+			BasicType arrayLenType = BasicType( Type::Qualifiers(), BasicType::LongUnsignedInt );
+			CastExpr *castExpr = new CastExpr( at->get_dimension(), arrayLenType.clone() );
+			Expression *newExpr = findSingleExpression( castExpr, *this );
+			delete at->get_dimension();
+			at->set_dimension( newExpr );
+
+		}
+		Visitor::visit( at );
 	}
   
