2008-03-27 Marek Safar <marek.safar@gmail.com>
[mono.git] / mcs / mcs / ChangeLog
index d2a089dd6a50d65a3ec475561d4a602f2ad9f7e9..a4fe0b9d06195ef395c61428bd2b26dc13296244 100644 (file)
@@ -1,3 +1,212 @@
+2008-03-27  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #374214
+       * ecore.cs: Correctly report argument type mismatch.
+
+2008-03-27  Marek Safar  <marek.safar@gmail.com>
+
+       * convert.cs (ImplicitReferenceConversionCore): Correctly compare enum type
+       and not rely on broken IsEnum.
+
+2008-03-27  Marek Safar  <marek.safar@gmail.com>
+
+       * nullable.cs: New file, extracted from generic.cs.
+       
+       * generic.cs, generic-mcs.cs, *.csproj, *.sources: Updated.
+
+2008-03-27  Marek Safar  <marek.safar@gmail.com>
+
+       * generic.cs, convert.cs, generic-mcs.cs, expression.cs: Added lifting of
+       predefined comparison operators and null literals.
+       
+       * report.cs: New warning ID.
+       
+2008-03-25  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #370577
+       * lambda.cs: Check return type too.
+
+2008-03-25  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #372846
+       * class.cs: Automatic properties can be declared as unsafe.
+
+2008-03-20  Marek Safar  <marek.safar@gmail.com>
+
+       * location.cs: Use string based concatenation.
+       
+       * expression.cs: LiftedBinaryOperator is gmcs only.
+       
+2008-03-20  Marek Safar  <marek.safar@gmail.com>
+
+       * generic.cs, literal.cs, ecore.cs, expression.cs: Ongoing work on nullable
+       conversions rules and expression trees.
+
+2008-03-19  Marek Safar  <marek.safar@gmail.com>
+
+       * delegate.cs: Use extension method source as delegate target.
+
+2008-03-19  Marek Safar  <marek.safar@gmail.com>
+
+       * generic.cs, generic-mcs.cs, expression.cs, ecore.cs: Rewrote nullable
+       binary operations to be purely based on binary operations and optimized
+       emitted code (30% less in some cases). Introduced ReducedExpression for ETs
+       and other ET refactoring.
+       
+       * typemanager.cs: Fixed warning.
+       
+2008-03-17  Marek Safar  <marek.safar@gmail.com>
+
+       * class.cs, decl.cs, delegate.cs: Do protected modifier check on each member
+       
+       * symbolwriter.cs: Fixed.
+
+2008-03-17  Marek Safar  <marek.safar@gmail.com>
+
+       * anonymous.cs, driver.cs: Reset anonymous types counters.
+
+2008-03-17  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs (MethodGroupExpr): Skip first candidate, it's already the best.
+       
+       * class.cs: Use fullname for all type member definitions.
+       
+2008-02-19  Martin Baulig  <martin@ximian.com>
+
+       * class.cs
+       (IMethodData.EmitExtraSymbolInfo): New interface method.
+       (MethodData.Emit): Call method.EmitExtraSymbolInfo().
+       (MethodOrOperator.EmitExtraSymbolInfo): Implement this new
+       interface method here as an empty public virtual method.
+
+       * anonymous.cs
+       (AnonymousMethodMethod.ctor): Added `string real_name' argument.
+       (AnonymousMethodMethod.EmitExtraSymbolInfo): Override and call
+       CodeGen.SymbolWriter.SetRealMethodName().       
+
+2008-02-18  Martin Baulig  <martin@ximian.com>
+
+       * anonymous.cs
+       (ScopeInfo.EmitType): Override this and emit debugging
+       information for captured variables.
+       (RootScopeInfo.EmitType): Override this and emit symbol
+       information for a captured `this'.
+
+2008-02-15  Martin Baulig  <martin@ximian.com>
+
+       * iterators.cs: Emit debugging info.
+
+       * codegen.cs
+       (EmitContext.Flags): Add `OmitDebuggingInfo'.
+       (EmitContext.OmitDebuggingInfo): New public property.
+
+       * statement.cs
+       (While): Override Emit() and don't emit symbol info there; do it
+       inside DoEmit() instead.
+       (Block.Emit): Omit symbol information while emitting the scope
+       initializers; don't ec.Mark() the `EndLocation'.  Fix the lexical
+       block logic.
+       (ExplicitBlock.IsIterator): Moved here from `ToplevelBlock'.
+       (ToplevelBlock.MakeIterator): Pass the `flags' to `ExplicitBlock's
+       .ctor to make `IsIterator' work.
+
+2008-03-14  Martin Baulig  <martin@ximian.com>
+
+       * symbolwriter.cs: Added the new symbol writer function from the
+       debugger's `terrania' branch; temporarily enclose them inside
+       `#if !DISABLE_TERRANIA_CHANGES' conditionals until I'm back from
+       my vacations.
+
+2008-03-14  Martin Baulig  <martin@ximian.com>
+
+       * symbolwriter.cs
+       (SymbolWriter): Make this a public static class.
+
+       * codegen.cs
+       (CodeGen.SymbolWriter): Removed; use the new static `SymbolWriter'
+       class instead of using `if (CodeGen.SymbolWriter != null)' everywhere.
+
+2008-03-14  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #370577
+       * statement.cs, lambda.cs: Added extra limitations when dealing with void
+       return type.
+       
+2008-03-14  Marek Safar  <marek.safar@gmail.com>
+
+       * typemanager.cs (CSharpName): Made 250 times faster.
+
+2008-03-13  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs, expression.cs: Emit conversion for ET shift argument.
+       
+2008-03-12  Marek Safar  <marek.safar@gmail.com>
+
+       * generic.cs, typemanager.cs, enum.cs, codegen.cs, statement.cs: Try not to
+       crash when predefined field does not exist.
+       
+2008-03-12  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs (PropertyExpr): Fixed IsSingleDimensionalArrayLength regression.
+       
+2008-03-12  Marek Safar  <marek.safar@gmail.com>
+
+       * class.cs (FixedField): Don't crash when contructors are missing.
+
+2008-03-11  Marek Safar  <marek.safar@gmail.com>
+
+       * typemanager.cs, namespace.cs, literal.cs, ecore.cs, class.cs, decl.cs,
+       convert.cs, constant.cs, expression.cs, statement.cs: Use same method to
+       check internal types accessibility for internal and external types.
+       Replaced EnumToUnderlying by GetEnumUnderlyingType.
+
+2008-03-11  Marek Safar  <marek.safar@gmail.com>
+
+       * support.cs, typemanager.cs, pending.cs, ecore.cs, class.cs, delegate.cs
+       convert.cs, const.cs, anonymous.cs, constant.cs, expression.cs,
+       attribute.cs, statement: Use corect instance of predefined types (work
+       related to #364674).
+
+2008-03-07  Marek Safar  <marek.safar@gmail.com>
+
+       * expression.cs (TypeOfVoid): Fixed predefined method initialization.
+       
+2008-03-07  Marek Safar  <marek.safar@gmail.com>
+
+       * generic.cs, typemanager.cs, parameter.cs, rootcontext.cs, ecore.cs, 
+       class.cs, delegate.cs, iterators.cs, const.cs, constant.cs, driver.cs,
+       expression.cs, attribute.cs, codegen.cs, statement.cs: TypeManager optional
+       predefined types clean up, delayed predefined types members initialization
+       (work related to #364674).
+
+2008-03-05  Marek Safar  <marek.safar@gmail.com>
+
+       * typemanager.cs (IsFriendAssembly): InternalsVisibleTo is not mandatory.
+       
+2008-03-05  Marek Safar  <marek.safar@gmail.com>
+
+       * typemanager.cs, parameter.cs, rootcontext.cs, ecore.cs, class.cs, decl.cs,
+       delegate.cs, convert.cs, driver.cs, attribute.cs, codegen.cs: TypeManager
+       predefined types clean up (work related to #364674).
+
+2008-03-04  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs: Print an error message instead of throwing exception.
+       
+2008-03-04  Marek Safar  <marek.safar@gmail.com>
+
+       * generic.cs, typemanager.cs, literal.cs, convert.cs, cfold.cs, constant.cs,
+       expression.cs, statement.cs: Unififed null literal representation.
+
+2008-03-03  Marek Safar  <marek.safar@gmail.com>
+
+       * anonymous.cs, cfold.cs, convert.cs, delegate.cs, doc.cs, ecore.cs,
+       expression.cs: Refactored binary operators resolve phase and improved speed.
+       The nullable code is still missing and won't work correctly, more fixes
+       required.
+
+       It also fixes #323726, #324312, #324248, and many other unreported issues.
+
 2008-02-29  Zoltan Varga  <vargaz@gmail.com>
 
        * report.cs (FeatureIsNotAvailable): Use 'mcs1' instead of 'mcs', and 'mcs'