Index: src/ResolvExpr/Resolver.cc
===================================================================
--- src/ResolvExpr/Resolver.cc	(revision 51fcdbc7bbe9ee66b4aed138d4e44171115b6e20)
+++ src/ResolvExpr/Resolver.cc	(revision 2b79a705ea7fc9439579f72a887d080e6387f0d5)
@@ -30,5 +30,4 @@
 #include "RenameVars.h"                  // for RenameVars, global_renamer
 #include "ResolvExpr/TypeEnvironment.h"  // for TypeEnvironment
-#include "ResolveTypeof.h"               // for resolveTypeof
 #include "Resolver.h"
 #include "SymTab/Autogen.h"              // for SizeType
@@ -57,5 +56,4 @@
 		void postvisit( FunctionDecl *functionDecl );
 		void previsit( ObjectDecl *objectDecll );
-		void previsit( TypeDecl *typeDecl );
 		void previsit( EnumDecl * enumDecl );
 		void previsit( StaticAssertDecl * assertDecl );
@@ -303,7 +301,4 @@
 
 	void Resolver::previsit( ObjectDecl *objectDecl ) {
-		Type *new_type = resolveTypeof( objectDecl->get_type(), indexer );
-		new_type->get_qualifiers() -= Type::Lvalue; // even if typeof is lvalue, variable can never have lvalue-qualified type
-		objectDecl->set_type( new_type );
 		// To handle initialization of routine pointers, e.g., int (*fp)(int) = foo(), means that class-variable
 		// initContext is changed multiple time because the LHS is analysed twice. The second analysis changes
@@ -335,11 +330,4 @@
 	}
 
-	void Resolver::previsit( TypeDecl *typeDecl ) {
-		if ( typeDecl->get_base() ) {
-			Type *new_type = resolveTypeof( typeDecl->get_base(), indexer );
-			typeDecl->set_base( new_type );
-		} // if
-	}
-
 	void Resolver::previsit( FunctionDecl *functionDecl ) {
 #if 0
@@ -348,6 +336,4 @@
 		std::cerr << std::endl;
 #endif
-		Type *new_type = resolveTypeof( functionDecl->type, indexer );
-		functionDecl->set_type( new_type );
 		GuardValue( functionReturn );
 		functionReturn = ResolvExpr::extractResultType( functionDecl->type );
