2005-12-09 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / mcs / statement.cs
index 20b1271d35661357931d230b2bce460ddfbf8530..7d70945eca849c1b7146c0755aaf7a127d440dbb 100644 (file)
@@ -1670,7 +1670,7 @@ namespace Mono.CSharp {
                ///   tc: is our typecontainer (to resolve type references)
                ///   ig: is the code generator:
                /// </remarks>
-               public void ResolveMeta (ToplevelBlock toplevel, EmitContext ec, InternalParameters ip)
+               public void ResolveMeta (ToplevelBlock toplevel, EmitContext ec, Parameters ip)
                {
                        bool old_unsafe = ec.InUnsafe;
 
@@ -1903,6 +1903,9 @@ namespace Mono.CSharp {
                                // Warn if we detect unreachable code.
                                //
                                if (unreachable) {
+                                       if (s is EmptyStatement)
+                                               continue;
+
                                        if (s is Block)
                                                ((Block) s).unreachable = true;
 
@@ -2204,7 +2207,7 @@ namespace Mono.CSharp {
                                Parameters pars = t.Parameters;
                                par = pars.GetParameterByName (name, out idx);
                                if (par != null)
-                                       return new ParameterReference (pars, this, idx, name, loc);
+                                       return new ParameterReference (par, this, idx, loc);
                        }
                        return null;
                }
@@ -2266,7 +2269,7 @@ namespace Mono.CSharp {
                        return this_variable == null || this_variable.IsThisAssigned (ec, loc);
                }
 
-               public bool ResolveMeta (EmitContext ec, InternalParameters ip)
+               public bool ResolveMeta (EmitContext ec, Parameters ip)
                {
                        int errors = Report.Errors;
 
@@ -3943,7 +3946,7 @@ namespace Mono.CSharp {
                                                MethodInfo mi = null;
 
                                                foreach (MethodInfo mk in ((MethodGroupExpr) ml).Methods) {
-                                                       if (TypeManager.GetArgumentTypes (mk).Length == 0) {
+                                                       if (TypeManager.GetParameterData (mk).Count == 0) {
                                                                mi = mk;
                                                                break;
                                                        }
@@ -4013,7 +4016,7 @@ namespace Mono.CSharp {
                                        MethodInfo mi = null;
 
                                        foreach (MethodInfo mk in ((MethodGroupExpr) ml).Methods) {
-                                               if (TypeManager.GetArgumentTypes (mk).Length == 0) {
+                                               if (TypeManager.GetParameterData (mk).Count == 0) {
                                                        mi = mk;
                                                        break;
                                                }
@@ -4424,10 +4427,8 @@ namespace Mono.CSharp {
 
                                foreach (MemberInfo m in move_next_list){
                                        MethodInfo mi = (MethodInfo) m;
-                                       Type [] args;
                                
-                                       args = TypeManager.GetArgumentTypes (mi);
-                                       if ((args != null) && (args.Length == 0) &&
+                                       if ((TypeManager.GetParameterData (mi).Count == 0) &&
                                            TypeManager.TypeToCoreType (mi.ReturnType) == TypeManager.bool_type) {
                                                move_next = mi;
                                                return true;
@@ -4468,10 +4469,8 @@ namespace Mono.CSharp {
 
                                foreach (MemberInfo m in dispose_list){
                                        MethodInfo mi = (MethodInfo) m;
-                                       Type [] args;
 
-                                       args = TypeManager.GetArgumentTypes (mi);
-                                       if (args != null && args.Length == 0){
+                                       if (TypeManager.GetParameterData (mi).Count == 0){
                                                if (mi.ReturnType == TypeManager.void_type)
                                                        return mi;
                                        }
@@ -4499,8 +4498,7 @@ namespace Mono.CSharp {
                                        return false;
 
                                foreach (MethodBase mb in mg.Methods) {
-                                       Type [] args = TypeManager.GetArgumentTypes (mb);
-                                       if (args != null && args.Length != 0)
+                                       if (TypeManager.GetParameterData (mb).Count != 0)
                                                continue;
                        
                                        // Check whether GetEnumerator is public