2001-11-22 Miguel de Icaza <miguel@ximian.com>
+ * expression.cs (Binary.ResolveOperator): Update the values of `l'
+ and `r' after calling DoNumericPromotions.
+
+ * ecore.cs: Fix error message (the types were in the wrong order).
+
+ * statement.cs (Foreach.ProbeCollectionType): Need to pass
+ BindingFlags.Instance as well
+
* ecore.cs (Expression.TryImplicitIntConversion): Wrap the result
implicit int literal conversion in an empty cast so that we
propagate the right type upstream.
Name = "System.XML"\r
AssemblyName = "System.Xml"\r
/>\r
+ <Reference\r
+ Name = "System.Web.Services"\r
+ AssemblyName = "System.Web.Services"\r
+ />\r
</References>\r
</Build>\r
<Files>\r
SubType = "Code"\r
BuildAction = "Compile"\r
/>\r
- <File\r
- RelPath = "gen-treedump.cs"\r
- SubType = "Code"\r
- BuildAction = "Compile"\r
- />\r
<File\r
RelPath = "interface.cs"\r
SubType = "Code"\r
SubType = "Code"\r
BuildAction = "Compile"\r
/>\r
+ <Folder\r
+ RelPath = "Web References\"\r
+ WebReferences = "TRUE"\r
+ />\r
</Include>\r
</Files>\r
</CSHARP>\r
RemoteDebugEnabled = "false"\r
RemoteDebugMachine = ""\r
StartAction = "Project"\r
- StartArguments = "c:\mono\mcs\tests\test-4.cs"\r
+ StartArguments = "c:\mono\mcs\tests\test-34.cs"\r
StartPage = ""\r
StartProgram = ""\r
StartURL = ""\r
return e;
string msg = "Can not convert implicitly from `"+
- TypeManager.CSharpName (target.Type) + "' to `" +
- TypeManager.CSharpName (type) + "'";
+ TypeManager.CSharpName (type) + "' to `" +
+ TypeManager.CSharpName (target.Type) + "'";
Error (29, loc, msg);
if (left == null || right == null)
return null;
+ //
+ // reload our cached types if required
+ //
+ l = left.Type;
+ r = right.Type;
if (oper == Operator.BitwiseAnd ||
oper == Operator.BitwiseOr ||
oper == Operator.ExclusiveOr){
- if (!((l == TypeManager.int32_type) ||
- (l == TypeManager.uint32_type) ||
- (l == TypeManager.int64_type) ||
- (l == TypeManager.uint64_type))){
+ if (l == r){
+ if (l.IsSubclassOf (TypeManager.enum_type) ||
+ !((l == TypeManager.int32_type) ||
+ (l == TypeManager.uint32_type) ||
+ (l == TypeManager.int64_type) ||
+ (l == TypeManager.uint64_type)))
+ type = l;
+ } else {
error19 ();
return null;
}
- type = l;
}
if (oper == Operator.Equality ||
MemberInfo [] mi;
mi = TypeContainer.FindMembers (t, MemberTypes.Method,
- BindingFlags.Public,
+ BindingFlags.Public | BindingFlags.Instance,
FilterEnumerator, null);
if (mi == null){