Forget to commit.
[mono.git] / mcs / mcs / ChangeLog
index 5dce143426cf8fa778976f496de09d0244089e90..a1953cf9ae279968cf642c9ca853605ef2aa18a7 100644 (file)
@@ -1,3 +1,184 @@
+2007-02-12  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #80749
+       * assign.cs (FieldInitializer): FieldInitializer has to keep track of
+       its parent container.
+
+       * class.cs (DefineFieldInitializers): Each initializer can has different
+       resolve context.
+
+       * const.cs: Updated.
+
+2007-02-11  Miguel de Icaza  <miguel@novell.com>
+
+       * lambda.cs (LambdaExpression.Compatible): Remove some early code,
+       now all the heavy lifting to check that embedded statements or
+       expressions have the right form is done in the ContextualReturn.
+
+       (ContextualReturn): New class.  
+
+       * ecore.cs (Error_InvalidExpressionStatement): Make a helper
+       method that can be invoked to report 201, so we do not replicate
+       this everywhere.
+
+       * cs-parser.jay: Reuse Error_InvalidExpressionStatement.
+       
+       * cs-tokenizer.cs (xtoken): Correctly compute the column, it was
+       treating tabs as spaces. 
+
+2007-02-09  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #80315 by martin.voelkle@gmail.com (Martin Voelkle)
+       * assign.cs: Use full implicit conversion for right side check.
+
+2007-02-09  Marek Safar  <marek.safar@gmail.com>
+
+       * statement.cs (Switch): Switch over boolean type is not standardized.
+
+2007-02-08  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #80755
+       * decl.cs (FindBaseEvent): Don't use method cache for events.
+
+2007-02-07  Marek Safar  <marek.safar@gmail.com>
+
+       * cs-parser.jay: Better syntax error handling.
+
+       * ecore.cs, enum.cs, statement.cs, typemanager.cs: Print enum member name
+       instead of underlying type value.
+
+2007-02-06  Marek Safar  <marek.safar@gmail.com>
+
+       * driver.cs: Check define identifier before is registered.
+
+       * namespace.cs: Use existing error message.
+
+       * report.cs: New warning.
+
+2007-02-06  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #80742
+       * expression.cs: Delegate Invoke method can be called directly.
+
+2007-02-06  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #80676
+       * class.cs (IsEntryPoint): The Main method can have params modifier.
+
+2007-02-04  Miguel de Icaza  <miguel@novell.com>
+
+       * parameter.cs (Parameter, Parameters): Add Clone method.
+
+       * anonymous.cs (Compatible): Turn method into virtual method, so
+       LambdaExpression can implement a different behavior.
+
+       (CompatibleChecks, VerifyExplicitParameterCompatibility): Factor
+       out the basic checking here, so it can be used by
+       LambdaExpressions.
+       
+       * lambda.cs: Introduce "Compatible" function that will do the
+       heavy lifting.
+
+2007-02-02  Marek Safar  <marek.safar@gmail.com>
+
+       * attribute.cs: Unified one error message.
+
+       * class.cs (Class): Use type attributes and not properties to test static
+       class.
+       (IsEntryPoint): Don's pass local variable.
+
+       * convert.cs: Removed duplicate check.
+
+       * decl.cs, doc.cs, ecore.cs (LookupType): Renamed to LookupNamespaceOrType.
+
+       * driver.cs: Don't crash when soft reference does not exist.
+
+       * namespace.cs (EnsureNamespace): Renamed to RegisterNamespace.
+       (UsingEntry): Removed redundant allocation.
+
+       * parameter.cs: Add fast path for type parameters.
+
+       * support.cs: Don't allocate attribute when it's not used.
+
+2007-01-30  Miguel de Icaza  <miguel@novell.com>
+
+       * anonymous.cs
+       (AnonymousMethodExpression.ImplicitStandardConversionExists): turn
+       this into a virtual method, so we can override it in LambdaExpression.
+
+       * driver.cs: Improve diagnostics in case of failure. 
+
+       * cs-tokenizer.cs: Instead of trying to parse a type and a name,
+       write a function that is slightly more complex and that parses:
+
+       type identifier [, type identifier]* )
+
+       The old function would return incorrectly a OPEN_PARENS_LAMBDA for
+       this expression:
+
+               (canEmpty ? i >= 0 : i > 0)
+
+2007-01-30  Raja R Harinath  <rharinath@novell.com>
+
+       * cs-tokenizer.cs (parse_namespace_or_typename): Don't throw an
+       exception on possibly valid code.
+
+2007-01-29  Raja R Harinath  <rharinath@novell.com>
+
+       * cs-tokenizer.cs (is_punct) ['<']: Update to changes in
+       Push/PopPosition.
+       (parse_opt_type_arguments): Remove.  It's almost the same as
+       parse_less_than.
+       (parse_namespace_or_typename): Use parse_less_than.
+
+2007-01-28  Miguel de Icaza  <miguel@novell.com>
+
+       * cs-tokenizer.cs: Typo fix, its not GMCS_SOURCES but GMCS_SOURCE,
+       this bug took a few hours to find, because the state saved and
+       restored by PushPosition and PopPosition was ignoring the state of
+       parse_generic_less_than.
+
+       I can also now remove the handling of OP_LT and OP_GT, this solves
+       the big mistery.
+       
+       * cs-tokenizer.cs: store the location for the ARROW token, we use
+       that in the parser.
+
+       (PushPosition, PopPosition): save/restore also `current_token',
+       restore `parse_generic_less_than' (was missing).
+
+       (parse_opt_type_arguments): use parse_type, not
+       parse_namespace_or_typename to parse types.
+
+       * lambda.cs: Empty new file, will eventually have the lambda
+       expression implementation.
+
+       * lambda.test: used to test the internal tokenizer. 
+
+       * report.cs (FeatureIsNotISO1): Rename from
+       FeatureIsNotStandardized, because it was about the language level
+       (1 vs 2) it was not about standarization.
+
+       (FeatureRequiresLINQ): New.
+
+       * support.cs (SeekableStreamReader): Only require that the reader
+       is a TextReader, not a StreamReader, so we can plug StringReader. 
+
+       * cs-tokenizer.cs (parse_type_and_parameter): Returns true if at a
+       given position in the input stream the following tokens can be
+       parsed as a type followed by an identifier.
+
+       (is_punct): after a '(' if parse_type_and_parameter returns true,
+       then return a special token OPEN_PARENS_LAMBDA which is used to
+       avoid reduce/reduce errors in the grammar for the
+       lambda_expression rules.
+
+       (parse_type): implement a type parser inside the
+       tokenizer, the parser only returns true or false depending on
+       whether the input at a given position can be parsed as a type.
+
+       (peek_token): new method used during type parsing.
+
 2007-01-28  Raja R Harinath  <rharinath@novell.com>
 
        Fix #80531