X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2Fmcs%2FChangeLog;h=85b3686a988f04c3c8df508d8e22185dbf67a429;hb=de115999a91ee121fa2389f3c1b89b167a7e06bd;hp=c1785ca7c02857d7ed3e73d634573f6a36ae5ca9;hpb=34603b5c260b5f89acea8c157e15e8203276f6dd;p=mono.git diff --git a/mcs/mcs/ChangeLog b/mcs/mcs/ChangeLog index c1785ca7c02..85b3686a988 100755 --- a/mcs/mcs/ChangeLog +++ b/mcs/mcs/ChangeLog @@ -1,3 +1,172 @@ +2003-05-28 Miguel de Icaza + + * cs-parser.jay: Update grammar to include anonymous methods. + + * anonymous.cs: new file. + +2003-05-27 Miguel de Icaza + + * class.cs (Field.Define): Add missing test for pointers and + safety. + +2003-05-27 Ravi Pratap + + * expression.cs (ArrayAccess.GetStoreOpCode): For System.IntPtr, + we use the stobj opcode. + + (ArrayCreation.EmitDynamicInitializers): Revert Miguel's patch + since it wasn't the correct fix. + + It still is puzzling that we are required to use stobj for IntPtr + which seems to be a ValueType. + +2003-05-26 Miguel de Icaza + + * ecore.cs (SimpleName.SimpleNameResolve): Consider using aliases + during regular simple name resolution. Now, the trick is that + instead of returning for processing the simplename, we do a + TypeManager.LookupType (ie, a rooted lookup as opposed to a + contextual lookup type). If a match is found, return that, if + not, return for further composition. + + This fixes long-standing 30485. + + * expression.cs (ArrayCreation.EmitDynamicInitializers): When + using the address to initialize an object, do an Stobj instead of + using the regular Stelem. + + (IndexerAccess.Emit, IndexerAccess.EmitAssign): + Pass `is_base_indexer' to Invocation.EmitCall instead of false. + Because if we are a BaseIndexerAccess that value will be true. + Fixes 43643. + + * statement.cs (GotoCase.Resolve): Return after reporting an + error, do not attempt to continue. + + * expression.cs (PointerArithmetic.Emit): If our operand is a + long, convert our constants to match the operand before + multiplying. Convert to I type before adding. Fixes 43670. + +2003-05-14 Ravi Pratap + + * enum.cs (ImplicitConversionExists) : Rename to + ImplicitEnumConversionExists to remove ambiguity. + + * ecore.cs (NullCast): New type of cast expression class which + basically is very similar to EmptyCast with the difference being + it still is a constant since it is used only to cast a null to + something else + (eg. (string) null) + + * convert.cs (ImplicitReferenceConversion): When casting a null + literal, we return a NullCast. + + * literal.cs (NullLiteralTyped): Remove - I don't see why this + should be around anymore. + + The renaming (reported was slightly wrong). Corrections: + + ConvertImplicitStandard -> ImplicitConversionStandard + ConvertExplicitStandard -> ExplicitConversionStandard + + * expression.cs (StaticCallExpr.MakeSimpleCall): Resolve arguments + before passing them in ! + + * convert.cs (ImplicitConversionStandard): When comparing for + equal expr and target types, ensure that expr is not a + NullLiteral. + + In general, we must not be checking (expr_type == + target_type) in the top level conversion methods + (ImplicitConversion, ExplicitConversion etc). This checking is + done in the methods that they delegate to. + +2003-05-20 Miguel de Icaza + + * convert.cs: Move Error_CannotConvertType, + ImplicitReferenceConversion, ImplicitReferenceConversionExists, + ImplicitNumericConversion, ImplicitConversionExists, + ImplicitUserConversionExists, StandardConversionExists, + FindMostEncompassedType, FindMostSpecificSource, + FindMostSpecificTarget, ImplicitUserConversion, + ExplicitUserConversion, GetConversionOperators, + UserDefinedConversion, ConvertImplicit, ConvertImplicitStandard, + TryImplicitIntConversion, Error_CannotConvertImplicit, + ConvertImplicitRequired, ConvertNumericExplicit, + ExplicitReferenceConversionExists, ConvertReferenceExplicit, + ConvertExplicit, ConvertExplicitStandard from the ecore.cs into + its own file. + + Perform the following renames: + + StandardConversionExists -> ImplicitStandardConversionExists + ConvertImplicit -> ImplicitConversion + ConvertImplicitStandard -> ImplicitStandardConversion + TryImplicitIntConversion -> ImplicitIntConversion + ConvertImplicitRequired -> ImplicitConversionRequired + ConvertNumericExplicit -> ExplicitNumericConversion + ConvertReferenceExplicit -> ExplicitReferenceConversion + ConvertExplicit -> ExplicitConversion + ConvertExplicitStandard -> ExplicitStandardConversion + +2003-05-19 Martin Baulig + + * statement.cs (TypeInfo.StructInfo): Made this type protected. + (TypeInfo): Added support for structs having structs as fields. + + * ecore.cs (FieldExpr): Implement IVariable. + (FieldExpr.DoResolve): Call VariableInfo.GetSubStruct() to get the + VariableInfo for the field. + +2003-05-18 Martin Baulig + + * expression.cs (This.DoResolve): Report a CS0027 if we're + emitting a field initializer. + +2003-05-18 Martin Baulig + + * expression.cs (This.ResolveBase): New public function. + (This.DoResolve): Check for CS0188. + + * codegen.cs (EmitContext.This): Just call This.ResolveBase(), not + This.Resolve(). + + * ecore.cs (MethodGroupExpr.DoResolve): Set the + `instance_expression' to null if we don't have any non-static + methods. + +2003-05-18 Martin Baulig + + Reworked the way how local variables and parameters are handled by + the flow analysis code. + + * statement.cs (TypeInfo, VariableMap): New public classes. + (VariableInfo): New public class. This is now responsible for + checking whether a variable has been assigned. It is used for + parameters and local variables. + (Block.EmitMeta): Take the InternalParameters as argument; compute + the layout of the flow vectors here. + (Block.LocalMap, Block.ParameterMap): New public properties. + (FlowBranching): The .ctor doesn't get the InternalParameters + anymore since Block.EmitMeta() now computes the layout of the flow + vector. + (MyStructInfo): This class is now known as `StructInfo' and nested + in `TypeInfo'; we don't access this directly anymore. + + * ecore.cs (IVariable): Added `VariableInfo VariableInfo' + property and removed IsAssigned(), IsFieldAssigned(), + SetAssigned() and SetFieldAssigned(); we now call them on the + VariableInfo so we don't need to duplicate this code everywhere. + + * expression.cs (ParameterReference): Added `Block block' argument + to the .ctor. + (LocalVariableReference, ParameterReference, This): The new + VariableInfo class is now responsible for all the definite + assignment stuff. + + * codegen.cs (EmitContext.IsVariableAssigned, SetVariableAssigned, + IsParameterAssigned, SetParameterAssigned): Removed. + 2003-05-18 Martin Baulig * typemanager.cs (InitCoreTypes): Try calling @@ -19,7 +188,7 @@ * parameter.cs (Parameter.ExternalType): drop the two arguments, they were unused. -s2003-05-11 Miguel de Icaza +2003-05-11 Miguel de Icaza * class.cs (MethodData.Define): Do not set the `newslot' on interface members, if they are also flagged as "override".