X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=mcs%2Fmcs%2FChangeLog;h=3ca6b4275663d3d7a6835ee02ffc00fbe19bab83;hb=df46f40d3b7badc48c221741b620766787cb7fad;hp=ef20fada8ee4e97d293b638ea3a606d3f2dc5b0d;hpb=a2d969e850c4f569442d11aa0843251753883a10;p=mono.git diff --git a/mcs/mcs/ChangeLog b/mcs/mcs/ChangeLog index ef20fada8ee..3ca6b427566 100644 --- a/mcs/mcs/ChangeLog +++ b/mcs/mcs/ChangeLog @@ -1,5 +1,687 @@ +2005-08-20 Martin Baulig + + * anonymous.cs (CaptureContext.CaptureThis): Create the topmost + scope if we don't already have it. + + * expression.cs (Invocation.EmitCall): Use `ec.EmitThis ()' rather + than `ig.Emit (OpCodes.Ldarg_0)' to make it work inside iterators; + fixes #75867. + +2005-08-17 Marek Safar + + Fix #75803 + * decl.cs (DeclSpace.VerifyClsCompliance): Skip when collision object + is a partial class. + +2005-08-16 Marek Safar + + The big constants rewrite + Fix #75746, #75685 and more + As a side effect saved 1MB for MWF ;-) + + * attribute.cs (GetAttributeArgumentExpression): Use ToType, GetTypedValue. + (GetMarshal, GetMethodImplOptions, GetLayoutKindValue): Values are not + enum based for corlib compilation. + + * cfold.cs (BinaryFold): Convert operand for enum additions. Fixed enum + subtractions. + + * class.cs (FixedField.Define): Use ResolveAsConstant. + + * const.cs (IConstant): Interface constants and enums. + (Const.ResolveValue): New method for constant resolvning. + (ExternalConstant): Constants from imported assemblies. + + * constant.cs (Constant.GetTypedValue): Used to get constant with forced + conversion; like enums. + (Constant.ToType): Converts this constant to different type. + (Constant.Increment): Adds 1. + + * convert.cs (ImplicitConversionRequired): Simplified. + + * cs-parser.jay: Create EnumMember directly. + + * decl.cs (MemberCore.CheckObsoleteness): Checks for ObsoleteAttribute presence. + + * doc.cs (GenerateEnumDocComment): Removed. + + * ecore.cs (Expression.ResolveAsConstant): New constant specific method. + (ConvertIntLiteral): Removed. + (FieldExpr.ResolveMemberAccess): Refactored to remove constant specific if(s). + + * enum.cs (EnumMember): Implement IConstant. + (Enum.IsValidEnumConstant): Removed. + (Enum.GetNextDefaultValue): Removed. + (Enum.FindMembers): Updated. + (Enum.GenerateDocComment): Iterate enum members. + + * expression.cs (Cast.TryReduce): Handle enums correctly. + (New.Constantify): Made public. + (MemberAccess.DoResolve): Removed contant specific if(s). + + * literal.cs (NullLiteral): Implement new abstract methods. + + * statement.cs (GotoCase.Resolve): Use new constant methods. + (SwitchLabel.ResolveAndReduce): Use new constant methods. + + * typemanager.cs (LookupEnum): Removed. + (IsEnumType): Fixed to work with corlib. + (RegisterConstant): Removed. + (LookupConstant): Removed. + (GetConstant): Changed to work with IConstant. + +2005-08-04 Atsushi Enomoto + + * location.cs : Fixed overflown (>255) column number. + +2005-08-03 Raja R Harinath + + First cut of the qualified-alias-member feature. + * cs-tokenizer.cs (Tokenizer.is_punct): Recognize the double-colon + token. + * cs-parser.jay (DOUBLE_COLON): New token. + (namespace_or_type_name): Add rule for recognizing + qualified-alias-members. + (primary_expression): Likewise. + (element_access): Allow QualifiedAliasMember as a possible + type-bearing expression. + (local_variable_type, local_variable_pointer_type): Likewise. + * namespace.cs (NamespaceEntry.LookupAlias): New. Looks up + aliases in the current and enclosing namespace declarations. + (NamespaceEntry.UsingAlias): Add CS0440 warning. + * decl.cs (MemberName.is_double_colon): New. + (MemberName.MemberName): Add new constructor for alias-member. + (MemberName.GetTypeExpression): Generate QualifiedAliasMember too. + * expression.cs (QualifiedAliasMember): New expression type. + +2005-08-02 Atsushi Enomoto + + * location.cs : it borked when no argument was specified. + +2005-08-02 Atsushi Enomoto + + * location.cs : tiny ToString() format fix. + +2005-08-02 Atsushi Enomoto + + * statement.cs : oops, it was missing. + +2005-08-02 Atsushi Enomoto + + A set of fixes for precise line/column location. + + * location.cs : + "token" field now holds a file/line "delta", a line number offset + from the segment, and a column number. See also: + http://lists.ximian.com/pipermail/mono-devel-list/2004- + December/009508.html + Removed static IsNull. Use instance IsNull property instead. + * cs-tokenizer.cs : + For some tokens it stores Location. For Identifier it stores + LocatedToken which is a pair of string name and location. + Column numbers are adjusted only at getChar(). + * report.cs : + Use Location.ToString() for reporting (it now contains column). + * cs-parser.jay : + Largely modified to use LocatedToken instead of + string (IDENTIFIER), and to acquire Location from some tokens. + * namespace.cs, decl.cs, ecore.cs, class.cs, delegate.cs, + iterators.cs, const.cs, anonymous.cs, tree.cs, enum.cs, + codegen.cs : + Now MemberName holds Location. DeclSpace.ctor() receives Location + as a parameter. Removed extra parameters to all derived classes. + Replaced Location.IsNull() with instance property. + * assign.cs, expression.cs : + Added .ctor() overload that omits Location. + * attribute.cs : + Added "nameEscaped" flag that indicates the identifier was escaped + in the source file. This fixes bug #57047. + +2005-08-02 Marek Safar + + * attribute.cs (AttributeTester.GetImportedIgnoreCaseClsType): + New method, looking for lo-case imported cls type. + + * decl.cs (DeclSpace.VerifyClsCompliance): Check CS3005 for types + here. + + * driver.cs: Removed VerifyTopLevelNameClsCompliance usage. + + * enum (Enum.VerifyClsCompliance): Hardcode non-compliant types. + + * typemanager.cs (TypeManager.AllClsTopLevelTypes): Renamed from + all_imported_types. + (TypeManager.LoadAllImportedTypes): Lo-case imported types. + + Optimized to save 3.5 MB for SWF compilation. + +2005-08-01 Marek Safar + + * class.cs (AddToTypeContainer): Use inheritance insted of if(s). + (PartialContainer.Create): Moved logic AddToContainer. + (PartialContainer.MarkForDuplicationCheck): Shares name. + + * decl.cs (DeclSpace.AddToContainer): Check name collisions at one + place. + + * namespace.cs (Namespace.AddDeclSpace): Lazy declspaces + initialization. + (Namespace.GetSignatureForError): New method. + + * tree.cs (Tree.RecordDecl): Moved to AddToContainer. + (RootTypes.AddToTypeContainer): se inheritance insted of if(s). + +2005-08-01 Raja R Harinath + + Fix #75669. + * ecore.cs (Expression.MemberLookupFailed): Use queried_type for + member lookup rather than qualifier_type, since qualifier_type can + be null. + +2005-08-01 Marek Safar + + * enum.cs (Enum.VerifyClsName): Fixed to allow not CLSCompliant + enum member. + +2005-07-31 Miguel de Icaza + + * statement.cs: Copy the local exception into the exception + captured local. Fixes 75674 + +2005-07-31 Raja R Harinath + + Fix #75658. + * expression.cs (Invocation.OverloadResolve): Don't report error + CS1501 if error CS1502 has been reported. + (New.DoResolve): Delegate CS1501 reporting to + Invocation.OverloadResolve. + + Fix #75656. + * statement.cs (Block.CheckInvariantMeaningInBlock): Verify + invariant-meaning-in-block property in an enclosing block if + necessary. + +2005-07-29 Marek Safar + + * statement.cs (SwitchLabel.ResolveAndReduce): Refactored. + (SwitchLabel.Erorr_AlreadyOccurs): Share error message. + (Switch.CheckSwitch): Just save 50kb for SWF. + +2005-07-27 Martin Baulig + + * anonymous.cs (CaptureContext.AddField): Added + `AnonymousContainer am' argument; compute its toplevel scope if + it's not already computed. Fixes #75649. + +2005-07-26 Raja R Harinath + + Fix #75628. + * class.cs (Constructor.Emit): Reset block to null if the block + resolve fails. + +2005-07-25 Marek Safar + + * class.cs (TypeContainer.VerifyMembers): Be compatible in warning 169. + +2005-07-25 Marek Safar + + * class.cs (MethodData.Define): Check whether accessor implementing + interface is public. + + * driver.cs (Driver.parse): Try to be smart and check for `MZ' header. + +2005-07-22 Marek Safar + + Fix #57245 + * namespace.cs (LookupType): Moved same type check to... + + * typemanager.cs (LookupTypeReflection): Don't allow to import more types + with the same name. + +2005-07-21 Raja R Harinath + + * namespace.cs (NamespaceLookupType): Avoid a string allocation when we + already found a typebuilder. + * class.cs (MethodCore.IsDuplicateImplementation): Compare + MemberNames, not strings. + + * const.cs (Error_ExpressionMustBeConst): + Rename from Error_EpressionMustBeConst. + * const.cs, class.cs, statement.cd: Update. + +2005-07-21 Marek Safar + + Fix #65573 + + * const.cs (Const.LookupConstantValue): Report missing contant expression + everytime. + (Error_EpressionMustBeConstant): Only one error method. + + * class.cs, statement.c: Updated. + +2005-07-20 Raja R Harinath + + * statement.cs (Block.Flags): Add back HasVarargs. + (Block.flags): Make protected. + (ToplevelBlock.HasVarargs): Convert to a property that updates flags. + + * typemanager.cs (types, typecontainers, user_types): Remove. + (UserTypes, TypeContainers): Likewise. + (HandleDuplicate, AddDelegateType, AddEnumType): Likewise. + (CleanUp, Reset): Update. + (AddUserType): Combine variants. Now, only updates builder_to_declspace. + (GetNestedType): Use Type.GetNestedType. + (CoreLookupType): Take two arguments, the namespace and the + basename of the type. Update to use the Namespace.Lookup + mechanism. + (InitEnumUnderlyingTypes, InitCoreTypes): Update. + (RealMemberLookup): Use IsNestedChildOf instead of playing with + string concatenation and substring matches. + * class.cs, enum.cs, delegate.cs: Update to changes. + +2005-07-20 Marek Safar + + * constant.cs (Constant.Error_ConstantValueCannotBeConverted): Moved from + Expression and made virtual. + + * convert.cs (ImplicitReferenceConversionExists): Skip for value types. + (ImplicitStandardConversionExists): Fixed `byte' typo ? + + * ecore.cs (Expression.Error_ConstantValueCannotBeConverted): Moved. + + * literal.cs (NullLiteral.Error_ConstantValueCannotBeConverted): Customize + error message. + + * convert.cs, ecore.cs, enum.cs: Reflect Error_ConstantValueCannotBeConverted + change. + +2005-07-18 Marek Safar + + Fix #57707 + * codegen.cs (AssemblyClass.ApplyAttributeBuilder): Check whether + AssemblyCultureAttribute is not used on executable. + + * rootcontext.cs, + * typemanager.cs: Add System.Reflection.AssemblyCultureAttribute. + +2005-07-16 Raja R Harinath + + Fix #60638. + * expression.cs (Binary.Warning_UnintendeReferenceComparison): + New. Reports CS0252/CS0253. + Mostly taken from preliminary patch by Duncak Mak. + (Binary.DoResolveOperator): Store results of operator lookup. + Use them to detect if we need to warn about unintended reference + comparisons. + +2005-07-15 Raja R Harinath + + Fix #72969. + * namespace.cs (Namespace.Lookup): Add back location parameter. + (Namespace.LookupType): Add CS0436 report. Add location parameter. + * delegate.cs, ecore.cs, expression.cs: Update to changes. + + * codegen.cs (EmitContext.DeclSpace): Make readonly. + * namespace.cs (Namespace.Lookup): Carve out type lookup into ... + (Namespace.LookupType): ... this. + (NamespaceEntry.GetUsingTable): Allocate only one zero-sized array + of namespaces. + * typemanager.cs (LookupTypeReflection): Remove buggy code that + purported to handle pointers. + (char_ptr_type, void_ptr_type): Use GetPointerType rather than + CoreLookupType. + +2005-07-15 Marek Safar + + * expression.cs (MemberAccess.ResolveNamespaceOrType): Don't report nested + type as namespace. + +2005-07-15 Raja R Harinath + + * namespace.cs (Namespace.Lookup): Drop location parameter. + (NamespaceEntry.LookupAlias): Remove. Merge into ... + (NamespaceEntry.Lookup): ... this. + (NamespaceEntry.Error_AmbiguousTypeReference): + Move here from DeclSpace. + (NamespaceEntry.LookupNamespaceOrType): Move support for dotted + names ... + * ecore.cs (TypeLookupExpression.DoResolveAsTypeStep): ... here. + * decl.cs (DeclSpace.ErrorAmbiguousTypeReference): + Move to NamespaceEntry. + * delegate.cs, expression.cs: Update to changes. + +2005-07-14 Marek Safar + + * attribute.cs (Attribute.ResolveAttributeType): Renamed from + CheckAttributeType and refactored. + (Attribute.ResolvePossibleAttributeType): Changed to reuse + ResolveAsTypeTerminal error handling. + (ResolveAsTypeTerminal): Introduced because of global attributes extra + handling. + (GetSignatureForError): Print errors in same way. + + * class.cs, + * codegen.cs: Reflect attribute GetSignatureForError change. + + * ecore.cs, + * expression.cs: Add silent parameter to ResolveAsTypeStep. + + * namespace.cs (UsingEntry): Refactored to make fields private. + + * assign.cs, + statement.cs: Error_UnexpectedKind has extra parameter. + +2005-07-14 Raja R Harinath + + * ecore.cs (IAlias): Remove. + * decl.cs (DeclSpace): Don't derive from IAlias. Remove members + that implement the interface. + * namespace.cs (Namespace): Likewise. + (Namespace.declspaces): Renamed from 'defined_names'. + (Namespace.AddDeclSpace): Renamed from 'DefineName'. Take a + DeclSpace instead of an IAlias. + * tree.cs (Tree.AddDecl): Update. + +2005-07-12 Raja R Harinath + + * statement.cs (Block.Flags); Remove HasVarargs. + (Block.HasVarargs): Move to ToplevelBlock. + (Block.ThisVariable, Block.AddThisVariable): Likewise. + (Block.Variables): Make protected. Initialize variable hashtable + if necessary. + (Block.AddVariable): Update. + (Block.Resolve): Update to changes. + (ToplevelBlock.HasVarargs): New boolean. + (ToplevelBlock.ThisVariable): Move here from Block. + (ToplevelBlock.AddThisVariable): Likewise. + (ToplevelBlock.IsThisAssigned): New. Forwards call to this_variable. + * expression.cs (This.ResolveBase): Update to changes. + (ArglistAccess.DoResolve): Likewise. + +2005-07-11 Marek Safar + + Fix #75321 + * ecore.cs, class.cs: Use SetAssigned instead of direct access. + + * class.cs (TypeContainer.VerifyMembers): Distinguish between + not used and not used & assigned. + (FieldBase.ASSIGNED): Moved to MemberCore.Flags. + +2005-07-11 Marek Safar + + Fix #75053 + * expression.cs (Is.DoResolve): null is never provided type. + +2005-07-08 Marek Safar + + Fix #52496 + * cs-parser.jay: Less strict event error rule to catch more errors. + +2005-07-08 Martin Baulig + + Fix test-iter-10.cs - distinguish whether we `yield' in a property + gettter (allowed) or setter (not allowed). + + * class.cs (Accessor): Implement IIteratorContainer. + (Accessor.Yields): New public field. + (PropertyBase.PropertyMethod.Define): Handle iterators on a + per-accessor basis. + + * cs-parser.jay + (get_accessor_declaration, set_accessor_declaration): Set the + `yields' flag on the accessor, not the property. + (property_declaration): Do the iterators check on a per-accessor + basis and not for the whole property. + +2005-07-08 Martin Baulig + + * anonymous.cs (CaptureContext.EmitParameterInstance): Correctly + handle parameters in nested scopes; fixes #74808; see gtest-188.cs. + +2005-07-07 Marek Safar + + Fix #74975 + * attribute.cs (orig_sec_assembly): Holds original version of assembly. + (ExtractSecurityPermissionSet): Cope with self referencing security + attributes properly. + + * driver.cs (SetOutputFile): Made public property OutputFile. + +2005-07-07 Raja R Harinath + + Fix #75486. + * class.cs (TypeContainer.first_nonstatic_field): Rename from + has_nonstatic_fields. Make into a FieldBase pointer. + (TypeContainer.AddField): Add CS0282 check. + (TypeContainer.EmitType): Update. + +2005-07-06 Miguel de Icaza + + * cs-tokenizer.cs (consume_identifier): Do not create strings to + compare if they start with __. + +2005-07-06 Raja R Harinath + + * statement.cs (Switch.SwitchGoverningType): Only look at + UserCasts that don't need implicit standard conversions to one of + the allowed switch types (Fixes test-322.cs). + (LocalInfo.Resolve): Re-enable sanity-test. + +2005-07-06 Marek Safar + + * cs-tokenizer.cs (consume_identifier): Detect double undescores + + * ecore.cs (FieldExpr.AddressOf): Changed volatile error to warning. + + * expression.cs (Invocation.DoResolve): Report error CS0245 here. + +2005-07-06 Raja R Harinath + + Fix #75472. + * ecore.cs (SimpleName.GetSignatureForError): Add. + * expression.cs (MemberAccess.DoResolve): Don't clobber 'expr' field. + (MemberAccess.GetSignatureForError): Add. + +2005-07-05 Marek Safar + + The big error and warning messages review. + + * anonymous.cs, + * assign.cs, + * attribute.cs, + * class.cs, + * codegen.cs, + * convert.cs, + * cs-parser.jay, + * cs-tokenizer.cs, + * decl.cs, + * delegate.cs, + * doc.cs, + * driver.cs, + * ecore.cs, + * enum.cs, + * expression.cs, + * flowanalysis.cs, + * iterators.cs, + * literal.cs, + * location.cs, + * modifiers.cs, + * namespace.cs, + * parameter.cs, + * pending.cs, + * report.cs, + * rootcontext.cs, + * statement.cs, + * support.cs, + * tree.cs, + * typemanager.cs: Updated. + + * class.cs: (MethodCore.SetYields): Moved here to share. + (PropertyMethod.Define): Moved iterator setup here. + + * iterators.cs: Add orig_method to have full access to parent + container. + +2005-07-05 Raja R Harinath + + Make 'fixed variable' handling standards compliant. Fix #70807, #72729. + * ecore.cs (IVariable.VerifyFixed): Remove 'is_expression' parameter. + (FieldExpr.VerifyFixed): Ensure that the field is part of a fixed + variable of struct type. + * expression.cs (Unary.ResolveOperator): Update to change. + (Indirection.VerifyFixed): Likewise. + (LocalVariableReference.VerifyFixed): A local variable is always fixed. + (ParameterReference.VerifyFixed): Value parameters are fixed. + (This.VerifyFixed): Treat 'this' as a value parameter. + * statement.cs (LocalInfo.IsFixed): Remove. + +2005-07-01 Martin Baulig + + * iterators.cs (Iterator.CapturedThisReference.Emit): Use + `ec.EmitThis ()' to get the correct scope. + +2005-07-01 Martin Baulig + + * ecore.cs (FieldExpr.DoResolve): Don't capture the field if it's + instance is a ParameterReference; fixes #75299. + +2005-07-01 Martin Baulig + + Reverted Marek's latest patch (r46725): + - it contains structural changes which are neither mentioned in + the ChangeLog nor explained anywhere; for example the additional + argument of EmitContext's and Iterator's .ctor's and the + TypeContainer.DefineMembers() change. + - structural changes like this should go in in seperate patches + and not be hidden in a huge patch which just seems to affect + warnings and errors. + a big and hard to understand patch. + - it breaks iterators and causes regressions, for instance in + test-iter-03.cs. + +2005-06-30 Raja R Harinath + + Fix #75412. + * expression.cs (Indexers.map): Remove. + (Indexers.Append): Filter out inaccessible setters and getters. + (IndexerAccess.DoResolve, IndexerAccess.DoResolveLValue): Update. + + Fix #75283. + * ecore.cs (MemberExpr.EmitInstance): New. Add CS0120 check. + Refactored from ... + (FieldExpr.EmitInstance, PropertyExpr.EmitInstance): ... these. + (FieldExpr.Emit, PropertyExpr.Emit): Update. + (FieldExpr.EmitAssign, PropertyExpr.EmitAssign): Update. + * expression.cs (Invocation.EmitCall): Add CS0120 check. + +2005-06-30 Marek Safar + + Fix #75322 + * class.cs (FieldBase.GetInitializerExpression): One more field + for backup. + +2005-06-28 Miguel de Icaza + + * pending.cs: Do not define a proxy if the base method is virtual, + it will be picked up by the runtime (bug 75270). + +2005-06-08 Martin Baulig + + The big Iterators rewrite :-) + + * iterators.cs: Rewrite this to use the anonymous methods framework. + + * rootcontext.cs (RootContext.DefineTypes): Define Delegates + before the TypeContainers; see 2test-21.cs. + + * class.cs + (TypeContainer.DefineType): Don't create a new EmitContext if we + already have one (this only happens if we're an Iterator). + (TypeContainer.Define): Also call Define() on all our iterators. + (Method.CreateEmitContext): Added support for iterators. + + * anonymous.cs + (AnonymousContainer): New abstract base class for `AnonymousMethod'. + (AnonymousContainer.CreateMethodHost): Moved here from + AnonymousMethod and made abstract. + (AnonymousContainer.CreateScopeType): New abstract method. + (AnonymousContainer.IsIterator): New public property. + (ScopeInfo.EmitScopeType): Call CreateScopeType() on our Host to + get the ScopeTypeBuilder rather than manually defining it here. + (ScopeInfo.EmitScopeInstance): New public method; correctly handle + iterators here. + + * driver.cs (Driver.MainDriver): Call TypeManager.InitCodeHelpers() + before RootContext.DefineTypes(). + + * codegen.cs (EmitContext.RemapToProxy): Removed. + (EmitContext.CurrentAnonymousMethod): Changed type from + AnonymousMethod -> AnonymousContainer. + (EmitContext.ResolveTopBlock): Protect from being called twice. + (EmitContext.MapVariable, RemapParameter(LValue)): Removed. + (EmitContext.EmitThis): Removed the iterators hacks; use the + anonymous methods framework for that. + + * statement.cs + (ToplevelBlock.Container): Make this a property, not a field. + (ToplevelBlock.ReParent): New public method; move the + ToplevelBlock into a new container. + (Foreach.TemporaryVariable): Simplify. + +2005-06-05 Martin Baulig + + * statement.cs (LocalInfo.CompilerGenerated): New flag. + (Block.AddTemporaryVariable): New public method; creates a new + `LocalInfo' for a temporary variable. + (Block.EmitMeta): Create the LocalBuilders for all the temporary + variables here. + (Foreach.TemporaryVariable): Use Block.AddTemporaryVariable() for + non-iterator variables. + +2005-06-05 Martin Baulig + + * statement.cs (Foreach.TemporaryVariable): Create the + LocalBuilder in the Emit phase and not in Resolve since in some + situations, we don't have an ILGenerator during Resolve; see + 2test-19.cs for an example. + +2005-06-04 Martin Baulig + + **** Merged r45395 from GCS **** + + The big Foreach rewrite - Part II. + + * typemanager.cs (TypeManager.object_getcurrent_void): Replaced + with `PropertyInfo ienumerator_getcurrent'. + + * codegen.cs (VariableStorage): Removed. + + * statement.cs + (Foreach): Derive from Statement, not ExceptionStatement. + (Foreach.CollectionForeach): New nested class. Moved all the code + dealing with collection foreach here. + (Foreach.ForeachHelperMethods): Removed. + (Foreach.TemporaryVariable): Implement IMemoryLocation. + +2005-05-23 Martin Baulig + + * statement.cs (Try.DoResolve): Don't create a `finally' if we + don't need to. Fix #75014. + +2005-05-20 Martin Baulig + + Merged r44808 from GMCS. + + * class.cs (TypeContainer.CircularDepException): Removed. + (TypeContainer.DefineType): Removed the `InTransit' stuff. + (TypeContainer.CheckRecursiveDefinition): Check for circular class + (CS0146) and interface (CS0529) dependencies here. + 2005-06-21 Raja R Harinath + * expression.cs (Invocation.EmitCall): Fix initialization + 'this_call' to reflect current behaviour. Fix indentation. + * convert.cs (FindMostEncompassedType): Add two trivial special cases (number_of_types == 0 || number_of_types == 1). (FindMostEncompasingType): Likewise.