+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'
+ instead of 'gmcs'.
+
+2008-02-27 Marek Safar <marek.safar@gmail.com>
+
+ * ecore.cs: Clean-up and split BetterConversion.
+
+2008-02-25 Raja R Harinath <harinath@hurrynot.org>
+
+ Fix #363791
+ * enum.cs (EnumMember.Value): Only access 'value' if
+ ResolveValue says it's ok.
+ (EnumMember.DoResolveValue): Don't set prev_member.value.
+ (Enum.GetDefinition): Reverse arguments of Equals --
+ EnumMember.Value can return 'null'.
+
+ * statement.cs (Switch.Error_AlreadyOccurs): Fix typo in name.
+
+2008-02-22 Marek Safar <marek.safar@gmail.com>
+
+ * generic.cs, expression.cs: More ongoing work on expression trees.
+
+2008-02-21 Marek Safar <marek.safar@gmail.com>
+
+ * class.cs, typemanager.cs: Rewrote operator matching logic to correctly
+ handle missing matches when mutiple operators exist.
+
+2008-02-20 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #363218
+ * expression.cs (ArrayCreation.Clone): Deal with multi-dimensional
+ initializers.
+
+2008-02-20 Marek Safar <marek.safar@gmail.com>
+
+ * expression.cs, constant.cs, cfold.cs: Yet another side-effect constant
+ update. This time to deal correctly with SideEffectConstant expression used
+ as an argument for another constant folding.
+
+2008-02-20 Raja R Harinath <harinath@hurrynot.org>
+
+ * typemanager.cs (DropGenericMethodArguments): Ensure we get an underlying
+ MethodBuilder.
+
+2008-02-19 Marek Safar <marek.safar@gmail.com>
+
+ * constant.cs, cfold.cs: SideEffectConstant results can apply for folding.
+
+2008-02-19 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #328136
+ * expression.cs: Do not fold immediately LogicalAnd operators when the left
+ side is a false constant, because we still need to evaluate the right-hand
+ side.
+
+ * statement.cs (If): Emit two types of boolean constants (simple constant,
+ side-effect constant).
+
+2008-02-19 Marek Safar <marek.safar@gmail.com>
+
+ * constant.cs (SideEffectConstant): Don't emit boolean constant.
+
+ * expression.cs: Fold immediately LogicalAnd operators when both sides are
+ constants.
+
+2008-02-18 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #361457
+ * ecore.cs (IsApplicable): Params methods have lower priority.
+
+ * support.cs: Return correct parameter modifier for params types.
+
+2008-02-18 Marek Safar <marek.safar@gmail.com>
+
+ * generic.cs (TypeParameter): Cache attribute target name.
+
+ * support.cs: Removed unused variable.
+
+ * typemanager.cs: Removed debugging leftover.
+
+ * ecore.cs: Use local type instead of a property;
+
+ * class.cs (VerifyMembers): Consider also parent to test whether type member
+ is local or public.
+
+ * expression.cs (FullMethodDesc): Removed.
+
+ * attribute.cs (IsValidArgumentType): Made static.
+
+2008-02-17 Raja R Harinath <harinath@hurrynot.org>
+
+ Cleanup to be more readable.
+ * Makefile (GMCS_PROFILE): Remove.
+ (COMPILER_NAME): New helper.
+
+2008-02-15 Miguel de Icaza <miguel@novell.com>
+
+ * cs-tokenizer.cs: if a conditional expression happens inside a
+ (...) this also means that we do not need to de-ambiguate between
+ an parenthesized expression and a cast.
+
+ Fixes 346484.
+
+ * constant.cs (SideEffectConstant): a constant value that happens
+ to have a side effect.
+
+ Fixes the build regressions introduced by the fix for #359789
+
+2008-02-14 Rodrigo Kumpera <rkumpera@novell.com>
+
+ * expression.cs (Conditional.Emit): when emitting the ternary
+ operator, use local variables to generate code verifiable code.
+
+ The verifier cannot infer that the type on stack before the
+ stloc.0 is executed is of type ParentB. This happens because the
+ stack merge algorithm uses only parent types when deciding which
+ is the common type. This is described in Part III 1.8.1.3 of ECMA
+ 335.
+
+ This code compiled with mcs is not verifiable under MS. The MS
+ verifier picks the first common interface of Foo and Bar, which is
+ wrong, but doesn't use a full join type of the 2 interfaces.
+
+ CSC uses a clever hack to compile such code in a verifiable
+ way. It stores the intermediate values in a local variable with
+ the expected type.
+
+ Fixes: #358102
+
+2008-02-14 Miguel de Icaza <miguel@novell.com>
+
+ * expression.cs: Do not fold BitwiseAnd operators when the left
+ side is a false constant, because we still need to evaluate the
+ right-hand side.
+
+ Fixes #359789
+
+ * support.cs: Instead of throwing an InternalErrorException when
+ the position of the stream is outside the boundary of our buffer,
+ reset the state of the reader, and restart the reading from the
+ beginning of the file.
+
+2008-02-14 Marek Safar <marek.safar@gmail.com>
+
+ * generic.cs (TypeParameter.GetMembers): Is not supported operation.
+
+2008-02-14 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #361686
+ * decl.cs: A protected types used inside a private class which parents
+ derives from the protected class are accessible.
+
+2008-02-13 Marek Safar <marek.safar@gmail.com>
+
+ * generic.cs (ConstraintChecker): Use cached member lookup when looking for
+ the parameterless constructor.
+
+2008-02-13 Marek Safar <marek.safar@gmail.com>
+
+ * generic.cs, typemanager.cs, iterators.cs, codegen.cs: Refactored core
+ lookup methods to use standard member cache when doing member lookup.
+
+2008-02-12 Marek Safar <marek.safar@gmail.com>
+
+ * driver.cs: Don't report full path for referenced module as assembly error.
+
+2008-02-12 Marek Safar <marek.safar@gmail.com>
+
+ * Makefile: Fixed `qh' target to work on all machines.
+
+ * report.cs, typemanager.cs, parameter.cs, ecore.cs, class.cs, anonymous.cs,
+ expression.cs, codegen.cs, statement.cs, doc.cs: Replaced type IsSubclassOf
+ and HasElementType with TypeManager implementation.
+
+2008-02-08 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bugs #325134, #359749
+ * expression.cs, ecore.cs: Try to resolve an extension method even if the
+ first binds point to non-method member expression.
+
+2008-02-08 Marek Safar <marek.safar@gmail.com>
+
+ * cs-parser.jay: Null coalescing operator is not part of ISO-1.
+
+2008-02-08 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bugs #321394, #323028
+ * generic.cs, parameter.cs, ecore.cs, class.cs, decl.cs, delegate.cs:
+ Reworked naive IsAccessibleAs implementation to handle nested types.
+
+2008-02-05 Jb Evain <jbevain@novell.com>
+
+ * class.cs: use generic type comparison for parameters
+ as well.
+
+2008-02-05 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #325372
+ * class.cs: Use generic type comparison when testing method signatures.
+
+2008-02-05 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #357047
+ * ecore.cs: Applied C# 3.0 changes to better conversion.
+
+2008-02-05 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #358374
+ * cs-parser.jay: Correctly set modifiers for all constructor types.
+
+2008-02-04 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #355251
+ * generic.cs: Added base class constraint based type inference.
+
+2008-02-01 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #357255
+ * decl.cs: One more missing visibility check.
+
+2008-02-01 Marek Safar <marek.safar@gmail.com>
+
+ * support.cs: Fixed broken return.
+
+2008-01-25 Marek Safar <marek.safar@gmail.com>
+
+ * report.cs: Correctly reset warnings count after probing.
+
+2008-01-25 Martin Baulig <martin@ximian.com>
+
+ * namespace.cs
+ (NamespaceEntry.SymbolFileID): Make this work again after
+ MemberName.ToString() is gone.
+
+2008-01-25 Marek Safar <marek.safar@gmail.com>
+
+ * expression.cs: Implemented Divide, Equal, ExclusiveOr, GreaterThanOrEqual
+ expressions.
+
+2008-01-25 Marek Safar <marek.safar@gmail.com>
+
+ * generic.cs: Use full implicit conversion for type inference fixing.
+
+2008-01-24 Marek Safar <marek.safar@gmail.com>
+
+ * ecore.cs, expression.cs, generic.cs: Implemented Convert, ConvertChecked.
+ Fixed user operator conversions.
+
+2008-01-24 Marek Safar <marek.safar@gmail.com>
+
+ * generic.cs: Do nullable type to null comparison optimization during
+ resolve phase.
+
+2008-01-24 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #355163
+ * generic.cs: Enabled l-value resolve on nullable expressions.
+
+2008-01-24 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #353986
+ * class.cs: Ingore static ctors with parameters for any further checks.
+
+2008-01-24 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #354310
+ * namespace.cs: Removed redundant check.
+
+2008-01-24 Marek Safar <marek.safar@gmail.com>
+
+ A fix for bug #354928
+ * expression.cs: ElementInitializers can be resolved only once.
+
+2008-01-24 Marek Safar <marek.safar@gmail.com>
+
+ * convert.cs, ecore.cs, expression.cs, generic.cs: Implemented Coalesce and
+ Condition expressions.
+
+2008-01-23 Marek Safar <marek.safar@gmail.com>
+
+ * codegen.cs: Fixed AssemblyBuilder initialization on other platforms.
+
2008-01-22 Marek Safar <marek.safar@gmail.com>
* ecore.cs, expression.cs, generic.cs: Implicit bool? to bool conversion is
not allowed.
-
+
* generic.cs: Implemented coalesce expression.
2008-01-22 Marek Safar <marek.safar@gmail.com>
A fix for bug #355145
- * anonymous.cs, convert.cs, ecore.cs, generic.cs, lambda.cs: Implemented
- expression tree type inference.
+ * anonymous.cs, convert.cs, ecore.cs, generic.cs, lambda.cs: Implemented
+ expression tree type inference.
2008-01-22 Raja R Harinath <harinath@hurrynot.org>
Fix #354663
* expression.cs (Binary.IsUnsignedType): Fix typo.
-
+
2008-01-22 Marek Safar <marek.safar@gmail.com>
- * ecore.cs, expression.cs, generic.cs: Implemented NewArrayInit expression.
-
+ * ecore.cs, expression.cs, generic.cs: Implemented NewArrayInit expression.
+
2008-01-22 Marek Safar <marek.safar@gmail.com>
A fix for bug #355161
- * ecore.cs, expression.cs: Wider range of extension method supported
- expressions.
-
+ * ecore.cs, expression.cs: Wider range of extension method supported
+ expressions.
+
2008-01-22 Gert Driesen <drieseng@users.sourceforge.net>
* codegen.cs: Use magic value for AssemblyBuilderAccess to instruct
2008-01-22 Marek Safar <marek.safar@gmail.com>
A fix for bug #355148
- * ecore.cs, expression.cs: Correctly report misused ref and out modifiers.
-
+ * ecore.cs, expression.cs: Correctly report misused ref and out modifiers.
+
2008-01-22 Miguel de Icaza <miguel@novell.com>
* expression.cs (CreateExpressionTree): Add support for or and