[corlib] Improve CancellationTokenSource test
[mono.git] / mcs / mcs / ChangeLog
index 3415a232dd088fcb1a9620929339a9da7f9c5cb3..bb0089306539349ccfea3105af58ca74ffbfc0ee 100644 (file)
@@ -1,3 +1,453 @@
+2010-07-28  Marek Safar  <marek.safar@gmail.com>
+
+       * anonymous.cs, assign.cs, attribute.cs, decl.cs, delegate.cs,
+       doc.cs, dynamic.cs, ecore.cs, expression.cs, generic.cs, import.cs,
+       iterators.cs, linq.cs, membercache.cs, method.cs, report.cs,
+       statement.cs, typemanager.cs: Major name lookup fixes to deal with
+       C# 3.0 invocable members, correctly handle accessibility hidding and
+       property-like different get/set base accessors.
+       
+       Also fixes bugs #624870, #618522, #616068, #444180, #333891
+
+2010-07-14  Marek Safar  <marek.safar@gmail.com>
+
+       * namespace.cs, import.cs: When importing nested type via type
+       arguments set their parent type correctly (Fixes #622051).
+
+2010-07-14  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #622104
+       * attribute.cs: Add default lookup flags.
+       
+2010-07-12  Marek Safar  <marek.safar@gmail.com>
+
+       * generic.cs: Don't use Report directly.
+       
+       * expression.cs, ecore.cs: UserOperatorCall uses MethodSpec without
+       MethodGroupExpr, will be simplified later.
+
+2010-07-09  Marek Safar  <marek.safar@gmail.com>
+
+       * property.cs, parameters.cs: Inflated IndexerSpec parameters.
+       
+       * import.cs: Don't build unused parameters.
+
+2010-07-08  Marek Safar  <marek.safar@gmail.com>
+
+       * expression.cs (Invocation): Don't recreate simple-name expression.
+
+2010-07-07  Marek Safar  <marek.safar@gmail.com>
+
+       * ecore.cs: Don't report NRE warning for lifted null.
+
+2010-07-07  Marek Safar  <marek.safar@gmail.com>
+
+       * typemanager.cs, convert.cs, expression.cs: Another reference
+       equality implementation attack (Fixes #620025, #579058).
+
+2010-07-05  Marek Safar  <marek.safar@gmail.com>
+
+       * context.cs, expression.cs, ecore.cs: BaseThis is fully based on
+       this expression (Fixes #619904).
+
+2010-07-05  Marek Safar  <marek.safar@gmail.com>
+
+       * membercache.cs, class.cs: Don't use base member to check for
+       property or indexer base implementation.
+
+2010-07-03  Marek Safar  <marek.safar@gmail.com>
+
+       * membercache.cs: Copy Membercache member state flags for 2 stage
+       inflate (Fixes #619555).
+       
+       * ecore.cs: Use resolved accessors everywhere.
+       
+2010-07-02  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #360820
+       * membercache.cs, property.cs: Check accessors of base property and
+       not the closest one.
+
+2010-07-02  Marek Safar  <marek.safar@gmail.com>
+
+       * modifiers.cs, membercache.cs, import.cs, class.cs: Moved imported
+       override method checks into import.
+
+       * expression.cs: Removed redundant check.
+
+2010-06-30  Marek Safar  <marek.safar@gmail.com>
+
+       * nullable.cs, expression.cs, statement.cs, method.cs, ecore.cs,
+       delegate.cs, cs-parser.jay, visit.cs: Use MemberAccess to resolve
+       base access expression, it has all bits done correctly.
+
+2010-06-30  Marek Safar  <marek.safar@gmail.com>
+
+       * support.cs: Removed unused code.
+       
+       * ecore.cs: Don't use memberlookup for operators.
+
+2010-06-30  Marek Safar  <marek.safar@gmail.com>
+
+       * typemanager.cs, membercache.cs, convert.cs, expression.cs,
+       ecore.cs: Replace remaining MethodLookup with correct user operator
+       lookup (to do correct deep lookup). Clean up most of outstanding
+       quirks in binary operator overload resolution.
+
+2010-06-29  Marek Safar  <marek.safar@gmail.com>
+
+       * import.cs: Operators must have between 1 and 2 parameters.
+       
+       * method.cs: Switch destructor to direct membercache lookup
+
+2010-06-29  Marek Safar  <marek.safar@gmail.com>
+
+       * driver.cs, expression.cs: Use Membercache for StringConcat when
+       it got all what is needed.
+
+2010-06-29  Marek Safar  <marek.safar@gmail.com>
+
+       * membercache.cs, expression.cs, statement.cs, doc.cs, ecore.cs:
+       Changed FindMembers to allocate a new list only when a filter is
+       used. Saves decent chunk of memory and should save even more in the
+       future when the filter is not used that often.
+
+2010-06-28  Marek Safar  <marek.safar@gmail.com>
+
+       * field.cs, property.cs, assign.cs, const.cs, expression.cs,
+       ecore.cs, class.cs, cs-parser.jay, enum.cs: Don't use intermediate
+       structure for simple type fields (saves memory and makes few things
+       simpler). Clean up some hacks mostly for events.
+
+2010-06-25  Marek Safar  <marek.safar@gmail.com>
+
+       * statement.cs, cs-parser.jay: Don't create expensive block for
+       simple statements.
+
+2010-06-24  Marek Safar  <marek.safar@gmail.com>
+
+       * statement.cs, report.cs: Rethrow internal error when reporting is
+       disabled.
+       
+       * ecore.cs: Check for identical name only when simple name is set.
+       Fixes #616667
+
+2010-06-24  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #616809
+       * generic.cs, expression.cs, ecore.cs: Added a new type expression
+       for open generic type to pass unbound type arguments to typeof
+       expression.
+
+2010-06-24  Marek Safar  <marek.safar@gmail.com>
+
+       * statement.cs: Foreach collection implementation refactoring to
+       search for GetEnumerator more preciselly. Fixes #431453 and more
+       unreported bugs.
+
+       * linq.cs, decl.cs, ecore.cs, delegate.cs: Update methodgroup api.
+
+2010-06-23  Marek Safar  <marek.safar@gmail.com>
+
+       * cs-parser.jay: Track more locations.
+
+2010-06-22  Marek Safar  <marek.safar@gmail.com>
+
+       * cs-tokenizer.cs, location.cs, cs-parser.jay: Track more locations.
+
+2010-06-18  Marek Safar  <marek.safar@gmail.com>
+
+       * cs-tokenizer.cs, anonymous.cs, expression.cs, statement.cs,
+       support.cs, location.cs, cs-parser.jay: Some work on full ast mode.
+
+2010-06-18  Marek Safar  <marek.safar@gmail.com>
+
+       * convert.cs, typespec.cs, method.cs: Fixed few more dynamic
+       conversion.
+
+2010-06-18  Marek Safar  <marek.safar@gmail.com>
+
+       * typemanager.cs, namespace.cs: Report more predefined types and
+       imported types collision types as a warning.
+       Fixes #537414, #601157
+
+2010-06-18  Marek Safar  <marek.safar@gmail.com>
+
+       * generic.cs: Overrides base method constraint can use method type
+       parameter.
+
+       * import.cs: Removed redundant cache.
+       
+2010-06-17  Marek Safar  <marek.safar@gmail.com>
+
+       * generic.cs: Propagate type only inflate downwards.
+
+2010-06-17  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #614955
+       * method.cs: Do not reject binary dynamic operators.
+
+2010-06-17  Marek Safar  <marek.safar@gmail.com>
+
+       * typespec.cs: Internal types have no generic parameters.
+       Fixes #615022.
+
+2010-06-17  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #614955
+       * cs-parser.jay: Correctly set expression mode for default parameter
+       values.
+
+2010-06-17  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #615023
+       * ecore.cs: Resolve dynamic namespace and keyword collision in the
+       favour of the keyword.
+
+2010-06-17  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #614917
+       * convert.cs: Allow more undocumented 0 like values to enum type 
+       conversions.
+
+2010-06-17  Marek Safar  <marek.safar@gmail.com>
+
+       * generic.cs, method.cs: Inflate copied type parameters from base
+       class or explicit interfaces.
+       
+       * convert.cs: Fixed conversion between two type parameters.
+       Fixes #614471
+
+2010-06-16  Marek Safar  <marek.safar@gmail.com>
+
+       * membercache.cs, convert.cs: Correctly resize an array used by
+       GetUserOperator.
+
+2010-06-15  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #599601
+       * dynamic.cs, ecore.cs: A new flag for dynamic resolver to ignore
+       generated member access left expression.
+       
+2010-06-16  Marek Safar  <marek.safar@gmail.com>
+
+       * expression.cs: Dispatch dynamic invocation solely on left
+       expression type.
+
+2010-06-16  Marek Safar  <marek.safar@gmail.com>
+
+       * expression.cs, statement.cs: Always persist explicit cast
+       semantic at expression level.
+       
+2010-06-15  Marek Safar  <marek.safar@gmail.com>
+
+       * expression.cs, attribute.cs: Enable generic type parameters
+       attribute check.
+       
+2010-06-15  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #612146
+       * generic.cs: Don't use fixed array for inflated type parameter
+       interface constraints.
+       
+2010-06-15  Marek Safar  <marek.safar@gmail.com>
+
+       * typespec.cs: ElementTypeSpec has to use its own ITypeDefinition.
+       
+       * report.cs: Unwrap elements for related symbols reporting.
+
+2010-06-15  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #612796
+       * cs-tokenizer.cs: Offset correctly keywords the first character
+       comparison.
+       
+2010-06-15  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #613397
+       * expression.cs: Removed too aggressive object initializers
+       optimization.
+       
+2010-06-15  Marek Safar  <marek.safar@gmail.com>
+       
+       * parameter.cs, property.cs, membercache.cs, decl.cs, iterators.cs,
+       anonymous.cs, expression.cs, support.cs, method.cs, pending.cs,
+       class.cs, cs-parser.jay: Simplify parsing of accessors by removing
+       any intermediate steps and fake nodes, also saves few MBs of memory.
+
+2010-06-11  Marek Safar  <marek.safar@gmail.com>
+       
+       * modifiers.cs, rootcontext.cs, location.cs, cs-parser.jay: More
+       precise modifiers parsing.
+
+2010-06-09  Marek Safar  <marek.safar@gmail.com>
+
+       * cs-tokenizer.cs, anonymous.cs, expression.cs, cs-parser.jay:
+       Fixed few shift/reduce conflicts.
+
+2010-06-09  Marek Safar  <marek.safar@gmail.com>
+
+       * typemanager.cs, parameter.cs, dynamic.cs, typespec.cs,
+       expression.cs, ecore.cs, cs-parser.jay: Fully parse composed type
+       specifiers and stop using string in AST.
+
+2010-06-07  Marek Safar  <marek.safar@gmail.com>
+
+       * typemanager.cs, eval.cs, iterators.cs, anonymous.cs, expression.cs
+       method.cs, class.cs, delegate.cs, cs-parser.jay, driver.cs, visit.cs
+       enum.cs: Hold location of predefined types.
+
+2010-06-07  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #610878
+       * pending.cs: Clone cached list before modifying.
+
+2010-06-04  Marek Safar  <marek.safar@gmail.com>
+
+       * convert.cs, typespec.cs, expression.cs: Start using array member
+       kind for better conversion checks.
+       
+       * import.cs, report.cs: Report better error message for runtime
+       reflection bugs.
+
+2010-06-04  Marek Safar  <marek.safar@gmail.com>
+
+       * membercache.cs, convert.cs, nullable.cs, expression.cs: Optimize
+       user defined conversion probing and simplify user conversion for
+       nullabe types. Fixes #610940.
+
+2010-06-03  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #610919
+       * parameter.cs, property.cs, cs-parser.jay: Use independent implicit
+       parameters for explicit event accessors. Anonymous method capturing
+       won't otherwise work for event implicit parameter.
+
+2010-06-02  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #610088
+       * nullable.cs, expression.cs, statement.cs, method.cs, ecore.cs:
+       Ignore overrides for base overload resolution as for non-base
+       expressions and convert the best candidate to closest override
+       afterwards.
+
+2010-06-01  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #610139
+       * generic.cs, convert.cs: Recursively check effective base interface
+
+2010-06-01  Marek Safar  <marek.safar@gmail.com>
+
+       * statement.cs: Handle nullable types and type parameters in using
+       statement, avoid boxing value types. Also fixes #571010
+
+2010-06-01  Marek Safar  <marek.safar@gmail.com>
+
+       * convert.cs, expression.cs: Emit unbox for underlying nullable
+       type boxing cast.
+
+2010-05-29  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #610126
+       * expression.cs: Don't use branch optimization for types bigger than
+       int.
+
+2010-05-28  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #609088
+       * import.cs: Check private modifier correctly.
+
+2010-05-28  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #609049
+       * ecore.cs: Don't ignore override methods when looking for base
+       member.
+
+2010-05-27  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bugs #608007, #572540, #566130, #476358
+
+       * generic.cs, linq.cs, expression.cs, statement.cs, cs-parser.jay:
+       More tricky refactoring of implicit linq blocks.
+       
+2010-05-25  Marek Safar  <marek.safar@gmail.com>
+
+       * linq.cs, cs-parser.jay: Keep location for all linq clauses.
+
+2010-05-25  Marek Safar  <marek.safar@gmail.com>
+
+       * context.cs, expression.cs, cs-parser.jay: Don't store current
+       block in This expression (it's too early for linq blocks).
+
+2010-05-21  Marek Safar  <marek.safar@gmail.com>
+
+       * expression.cs: Use constrained prefix more broadly to avoid boxing.
+
+2010-05-20  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #591149
+       * nullable.cs: Don't double wrap same expression.
+       
+2010-05-20  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #569827
+       * anonymous.cs: Any issued error in probing mode means no match.
+
+2010-05-20  Marek Safar  <marek.safar@gmail.com>
+
+       * expression.cs: Search for base indexer using the closest match
+       rule.
+
+2010-05-20  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #572071
+       * method.cs: Set override constraints using unexpanded interface
+       list.
+
+2010-05-20  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #572071
+       * ecore.cs: Include secondary extension method lookup in probing
+       mode.
+
+2010-05-19  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #515801
+       * typespec.cs (MayBecomeEqualGenericTypes): Recursively check
+       type arguments.
+
+2010-05-19  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #515801
+       * pending.cs: Advance counter correctly.
+
+2010-05-19  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #480139
+       * method.cs, pending.cs: Indexer override uses base name.
+       
+2010-05-19  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #424064
+       * generic.cs: Replace original with inflated type parameter on
+       failure.
+
+2010-05-19  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #359733
+       * parameter.cs: Extension attribute can be defined in each assembly.
+
+2010-05-18  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #446507
+       * method.cs: Only one method can implement an interface.
+
+2010-05-18  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #594905
+       * convert.cs, constant.cs, expression.cs, literal.cs, ecore.cs:
+       Typed null can be used as a source for expression methods.
+
 2010-05-18  Marek Safar  <marek.safar@gmail.com>
 
        A fix for bug #606551