+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