X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fmcs%2Fparameter.cs;h=d344c3a8dcdc12a8177c0a90a0d77ee8a67ff681;hb=5f0dc4802f69745ced8f32b39bd770f7bd134b8f;hp=fb078ad8723fe84e96b3f41907f7cd543b4f271c;hpb=999e71586636324daba2bd85b1109547c4b01641;p=mono.git diff --git a/mcs/mcs/parameter.cs b/mcs/mcs/parameter.cs index fb078ad8723..d344c3a8dcd 100755 --- a/mcs/mcs/parameter.cs +++ b/mcs/mcs/parameter.cs @@ -51,20 +51,15 @@ namespace Mono.CSharp { public bool Resolve (DeclSpace ds, Location l) { parameter_type = ds.ResolveType (TypeName, false, l); - return parameter_type != null; - } - // - // ResolveAndDefine is used by delegate declarations, because - // they happen during the initial tree resolution process - // - public bool ResolveAndDefine (DeclSpace ds) - { - // FIXME: Should use something else instead of Location.Null - parameter_type = ds.ResolveType (TypeName, true, Location.Null); + if (parameter_type == TypeManager.void_type){ + Report.Error (1536, l, "`void' parameter is not permitted"); + return false; + } + return parameter_type != null; } - + public Type ExternalType (DeclSpace ds, Location l) { if ((ModFlags & Parameter.Modifier.ISBYREF) != 0){ @@ -323,7 +318,7 @@ namespace Mono.CSharp { foreach (Parameter p in FixedParameters){ Type t = null; - if (p.ResolveAndDefine (ds)) + if (p.Resolve (ds, loc)) t = p.ExternalType (ds, loc); else ok_flag = false; @@ -334,7 +329,7 @@ namespace Mono.CSharp { } if (extra > 0){ - if (ArrayParameter.ResolveAndDefine (ds)) + if (ArrayParameter.Resolve (ds, loc)) types [i] = ArrayParameter.ExternalType (ds, loc); else ok_flag = false;