[csdoc-patches] CVS: csdoc/src/csdoc AssemblyInfo.cs,1.1,1.2 ChangeLog,1.1,1.2 driver.cs,1.1,1.2
Status: Planning
Brought to you by:
mastergaurav
From: Gaurav V. <mas...@us...> - 2003-02-19 14:05:30
|
Update of /cvsroot/csdoc/csdoc/src/csdoc In directory sc8-pr-cvs1:/tmp/cvs-serv12037 Modified Files: AssemblyInfo.cs ChangeLog driver.cs Log Message: 2003-02-19 * driver.cs : Remove bogus part. * AssemblyInfo.cs : Updated for csdoc. Index: AssemblyInfo.cs =================================================================== RCS file: /cvsroot/csdoc/csdoc/src/csdoc/AssemblyInfo.cs,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- AssemblyInfo.cs 19 Feb 2003 05:50:11 -0000 1.1 +++ AssemblyInfo.cs 19 Feb 2003 14:05:25 -0000 1.2 @@ -1,8 +1,10 @@ using System.Reflection; using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("0.19.1")] -[assembly: AssemblyTitle ("Mono C# Compiler")] -[assembly: AssemblyDescription ("Mono C# Compiler")] -[assembly: AssemblyCopyright ("2001, 2002 Ximian, Inc.")] -[assembly: AssemblyCompany ("Ximian, Inc.")] +[assembly: AssemblyVersion("0.2.*")] +[assembly: AssemblyFileVersion("0.2.0")] +[assembly: AssemblyTitle ("C# Document Generator")] +[assembly: AssemblyDescription ("C# Document Generator")] +[assembly: AssemblyCopyright ("(C) 2003, Gaurav Vaish")] +[assembly: AssemblyCompany ("http://csdoc.sourceforge.net/")] +[assembly: AssemblyProduct("CSDoc")] Index: ChangeLog =================================================================== RCS file: /cvsroot/csdoc/csdoc/src/csdoc/ChangeLog,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ChangeLog 19 Feb 2003 05:50:11 -0000 1.1 +++ ChangeLog 19 Feb 2003 14:05:25 -0000 1.2 @@ -1,3 +1,9 @@ + +2003-02-19 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> + + * driver.cs : Remove bogus part. + * AssemblyInfo.cs : Updated for csdoc. + 2003-02-19 Gaurav Vaish <mastergaurav AT users DOT sf DOT net> * cs-parser.jay, @@ -6,10730 +12,6 @@ * decl.cs, * driver.cs : Modifying mcs to my suite. -2003-02-12 Miguel de Icaza <mi...@xi...> - - * ecore.cs (FieldExpr.AddressOf): In the particular case of This - and structs, we do not want to load the instance variable - - (ImplicitReferenceConversion, ImplicitReferenceConversionExists): - enum_type has to be handled like an object reference (implicit - conversions exists from this to object), but the regular IsClass - and IsValueType tests will never return true for this one. - - Also we use TypeManager.IsValueType instead of type.IsValueType, - just for consistency with the rest of the code (this is only - needed if we ever use the construct exposed by test-180.cs inside - corlib, which we dont today). - -2003-02-12 Zoltan Varga <va...@fr...> - - * attribute.cs (ApplyAttributes): apply all MethodImplAttributes, not - just InternalCall. - -2003-02-09 Martin Baulig <ma...@xi...> - - * namespace.cs (Namespace..ctor): Added SourceFile argument. - (Namespace.DefineNamespaces): New static public method; this is - called when we're compiling with debugging to add all namespaces - to the symbol file. - - * tree.cs (Tree.RecordNamespace): Added SourceFile argument and - pass it to the Namespace's .ctor. - - * symbolwriter.cs (SymbolWriter.OpenMethod): Added TypeContainer - and MethodBase arguments; pass the namespace ID to the symwriter; - pass the MethodBase instead of the token to the symwriter. - (SymbolWriter.DefineNamespace): New method to add a namespace to - the symbol file. - -2003-02-09 Martin Baulig <ma...@xi...> - - * symbolwriter.cs: New file. This is a wrapper around - ISymbolWriter with a cleaner API. We'll dynamically Invoke() - methods here in near future. - -2003-02-09 Martin Baulig <ma...@xi...> - - * codegen.cs (EmitContext.Mark): Just pass the arguments to - ILGenerator.MarkSequencePoint() which are actually used by the - symbol writer. - -2003-02-09 Martin Baulig <ma...@xi...> - - * location.cs (SourceFile): New public sealed class. This - contains the name and an index which is used in the location's token. - (Location): Reserve an appropriate number of bits in the token for - the source file instead of walking over that list, this gives us a - really huge performance improvement when compiling with debugging. - - * driver.cs (Driver.parse, Driver.tokenize_file): Take a - `SourceFile' argument instead of a string. - (Driver.ProcessFile): Add all the files via Location.AddFile(), - but don't parse/tokenize here, we need to generate the list of all - source files before we do that. - (Driver.ProcessFiles): New static function. Parses/tokenizes all - the files. - - * cs-parser.jay (CSharpParser): Take a `SourceFile' argument - instead of a string. - - * cs-tokenizer.cs (Tokenizer): Take `SourceFile' argument instead - of a string. - -2003-02-09 Martin Baulig <ma...@xi...> - - * cs-tokenizer.cs (Tokenizer.PreProcessLine): Also reset the - filename on `#line default'. - -Sat Feb 8 17:03:16 CET 2003 Paolo Molaro <lu...@xi...> - - * statement.cs: don't clear the pinned var when the fixed statement - returns from the method (fixes bug#37752). - -Sat Feb 8 12:58:06 CET 2003 Paolo Molaro <lu...@xi...> - - * typemanager.cs: fix from ma...@my... (Marcus Urban) - to IsValueType. - -2003-02-07 Martin Baulig <ma...@xi...> - - * driver.cs: Removed the `--debug-args' command line argument. - - * codegen.cs (CodeGen.SaveSymbols): Removed, this is now done - automatically by the AsssemblyBuilder. - (CodeGen.InitializeSymbolWriter): We don't need to call any - initialization function on the symbol writer anymore. This method - doesn't take any arguments. - -2003-02-03 Miguel de Icaza <mi...@xi...> - - * driver.cs: (AddAssemblyAndDeps, LoadAssembly): Enter the types - from referenced assemblies as well. - -2003-02-02 Martin Baulig <ma...@xi...> - - * class.cs (MethodData.Emit): Generate debugging info for external methods. - -2003-02-02 Martin Baulig <ma...@xi...> - - * class.cs (Constructor.Emit): Open the symbol writer before - emitting the constructor initializer. - (ConstructorInitializer.Emit): Call ec.Mark() to allow - single-stepping through constructor initializers. - -2003-01-30 Miguel de Icaza <mi...@xi...> - - * class.cs: Handle error 549: do not allow virtual methods in - sealed classes. - -2003-02-01 Jackson Harper <ja...@la...> - - * decl.cs: Check access levels when resolving types - -2003-01-31 Jackson Harper <ja...@la...> - - * statement.cs: Add parameters and locals set in catch blocks that might - return to set vector - -2003-01-29 Miguel de Icaza <mi...@xi...> - - * class.cs (Operator): Set the SpecialName flags for operators. - - * expression.cs (Invocation.DoResolve): Only block calls to - accessors and operators on SpecialName methods. - - (Cast.TryReduce): Handle conversions from char constants. - - -Tue Jan 28 17:30:57 CET 2003 Paolo Molaro <lu...@xi...> - - * statement.cs: small memory and time optimization in FlowBranching. - -2003-01-28 Pedro Mart <yo...@wa...> - - * expression.cs (IndexerAccess.DoResolveLValue): Resolve the same - problem that the last fix but in the other sid (Set). - - * expression.cs (IndexerAccess.DoResolve): Fix a problem with a null - access when there is no indexer in the hierarchy. - -2003-01-27 Jackson Harper <ja...@la...> - - * class.cs: Combine some if statements. - -2003-01-27 Gonzalo Paniagua Javier <go...@xi...> - - * driver.cs: fixed bug #37187. - -2003-01-27 Pedro Martinez Juliá <yo...@wa...> - - * expression.cs (IndexerAccess.DoResolve): Before trying to resolve - any indexer, it's needed to build a list with all the indexers in the - hierarchy (AllGetters), else we have problems. Fixes #35653. - -2003-01-23 Miguel de Icaza <mi...@xi...> - - * class.cs (MethodData.Define): It is wrong for an interface - implementation to be static in both cases: explicit and implicit. - We were only handling this in one case. - - Improve the if situation there to not have negations. - - * class.cs (Field.Define): Turns out that we do not need to check - the unsafe bit on field definition, only on usage. Remove the test. - -2003-01-22 Gonzalo Paniagua Javier <go...@xi...> - - * driver.cs: use assembly.Location instead of Codebase (the latest - patch made mcs fail when using MS assemblies). - -2003-01-21 Tim Haynes <th...@op...> - - * driver.cs: use DirectorySeparatorChar instead of a hardcoded "/" to - get the path to *corlib.dll. - -2003-01-21 Nick Drochak <ndr...@go...> - - * cs-tokenizer.cs: - * pending.cs: - * typemanager.cs: Remove compiler warnings - -2003-01-20 Duncan Mak <du...@xi...> - - * AssemblyInfo.cs: Bump the version number to 0.19. - -2003-01-20 Gonzalo Paniagua Javier <go...@xi...> - - * cs-tokenizer.cs: little fixes to line numbering when #line is used. - -2003-01-18 Zoltan Varga <va...@fr...> - - * class.cs (Constructor::Emit): Emit debugging info for constructors. - -2003-01-17 Miguel de Icaza <mi...@xi...> - - * cs-parser.jay: Small fix: we were not comparing the constructor - name correctly. Thanks to Zoltan for the initial pointer. - -2003-01-16 Jackson Harper <ja...@la...> - - * cs-tokenizer.cs: Set file name when specified with #line - -2003-01-15 Miguel de Icaza <mi...@xi...> - - * cs-parser.jay: Only perform the constructor checks here if we - are named like the class; This will help provider a better - error. The constructor path is taken when a type definition is - not found, but most likely the user forgot to add the type, so - report that rather than the constructor error. - -Tue Jan 14 10:36:49 CET 2003 Paolo Molaro <lu...@xi...> - - * class.cs, rootcontext.cs: small changes to avoid unnecessary memory - allocations. - -2003-01-13 Jackson Harper <ja...@la...> - - * cs-parser.jay: Add cleanup call. - -2003-01-13 Duncan Mak <du...@xi...> - - * cs-tokenizer.cs (Cleanup): Rename to 'cleanup' to make it more - consistent with other methods. - -2003-01-13 Jackson Harper <ja...@la...> - - * cs-tokenizer.cs: Add Cleanup method, also fix #region error messages. - -Sun Jan 12 19:58:42 CET 2003 Paolo Molaro <lu...@xi...> - - * attribute.cs: only set GuidAttr to true when we have a - GuidAttribute. - -2003-01-09 Gonzalo Paniagua Javier <go...@xi...> - - * ecore.cs: - * expression.cs: - * typemanager.cs: fixes to allow mcs compile corlib with the new - Type.IsSubclassOf fix. - -2003-01-08 Miguel de Icaza <mi...@xi...> - - * expression.cs (LocalVariableReference.DoResolve): Classify a - constant as a value, not as a variable. Also, set the type for - the variable. - - * cs-parser.jay (fixed_statement): take a type instead of a - pointer_type, so we can produce a better error message later. - - * statement.cs (Fixed.Resolve): Flag types that are not pointers - as an error. - - (For.DoEmit): Make inifinite loops have a - non-conditional branch back. - - (Fixed.DoEmit): First populate the pinned variables, then emit the - statement, then clear the variables. Before I was emitting the - code once for each fixed piece. - - -2003-01-08 Martin Baulig <ma...@xi...> - - * statement.cs (FlowBranching.MergeChild): A break in a - SWITCH_SECTION does not leave a loop. Fixes #36155. - -2003-01-08 Martin Baulig <ma...@xi...> - - * statement.cs (FlowBranching.CheckOutParameters): `struct_params' - lives in the same number space than `param_map'. Fixes #36154. - -2003-01-07 Miguel de Icaza <mi...@xi...> - - * cs-parser.jay (constructor_declaration): Set the - Constructor.ModFlags before probing for it. This makes the - compiler report 514, 515 and 132 (the code was there, but got - broken). - - * statement.cs (Goto.Resolve): Set `Returns' to ALWAYS. - (GotoDefault.Resolve): Set `Returns' to ALWAYS. - (GotoCase.Resolve): Set `Returns' to ALWAYS. - -Tue Jan 7 18:32:24 CET 2003 Paolo Molaro <lu...@xi...> - - * enum.cs: create the enum static fields using the enum type. - -Tue Jan 7 18:23:44 CET 2003 Paolo Molaro <lu...@xi...> - - * class.cs: don't try to create the ParamBuilder for the return - type if it's not needed (and handle it breaking for the ms runtime - anyway). - -2003-01-06 Jackson Harper <ja...@la...> - - * cs-tokenizer.cs: Add REGION flag to #region directives, and add checks to make sure that regions are being poped correctly - -2002-12-29 Miguel de Icaza <mi...@xi...> - - * cs-tokenizer.cs (get_cmd_arg): Fixups to allow \r to terminate - the command. This showed up while compiling the JANET source - code, which used \r as its only newline separator. - -2002-12-28 Miguel de Icaza <mi...@xi...> - - * class.cs (Method.Define): If we are an operator (because it - reuses our code), then set the SpecialName and HideBySig. #36128 - -2002-12-22 Miguel de Icaza <mi...@xi...> - - * ecore.cs (FieldExpr.DoResolve): Instead of throwing an - exception, report error 120 `object reference required'. - - * driver.cs: Add --pause option, used during to measure the size - of the process as it goes with --timestamp. - - * expression.cs (Invocation.DoResolve): Do not allow methods with - SpecialName to be invoked. - -2002-12-21 Miguel de Icaza <mi...@xi...> - - * cs-tokenizer.cs: Small fix to the parser: compute the ascii - number before adding it. - -2002-12-21 Ravi Pratap <ra...@xi...> - - * ecore.cs (StandardImplicitConversion): When in an unsafe - context, we allow conversion between void * to any other pointer - type. This fixes bug #35973. - -2002-12-20 Jackson Harper <ja...@la...> - - * codegen.cs: Use Path.GetFileNameWithoutExtension so an exception - is not thrown when extensionless outputs are used - -2002-12-20 Gonzalo Paniagua Javier <go...@xi...> - - * rootcontext.cs: fixed compilation of corlib. - -2002-12-19 Miguel de Icaza <mi...@xi...> - - * attribute.cs (Attributes.Contains): Add new method. - - * class.cs (MethodCore.LabelParameters): if the parameter is an - `out' parameter, check that no attribute `[In]' has been passed. - - * enum.cs: Handle the `value__' name in an enumeration. - -2002-12-14 Jaroslaw Kowalski <ja...@at...> - - * decl.cs: Added special case to allow overrides on "protected - internal" methods - -2002-12-18 Ravi Pratap <ra...@xi...> - - * attribute.cs (Attributes.AddAttributeSection): Rename to this - since it makes much more sense. - - (Attributes.ctor): Don't require a Location parameter. - - * rootcontext.cs (AddGlobalAttributeSection): Rename again. - - * attribute.cs (ApplyAttributes): Remove extra Location parameters - since we already have that information per attribute. - - * everywhere : make appropriate changes. - - * class.cs (LabelParameters): Write the code which actually - applies attributes to the return type. We can't do this on the MS - .NET runtime so we flag a warning in the case an exception is - thrown. - -2002-12-18 Miguel de Icaza <mi...@xi...> - - * const.cs: Handle implicit null conversions here too. - -2002-12-17 Ravi Pratap <ra...@xi...> - - * class.cs (MethodCore.LabelParameters): Remove the extra - Type [] parameter since it is completely unnecessary. Instead - pass in the method's attributes so that we can extract - the "return" attribute. - -2002-12-17 Miguel de Icaza <mi...@xi...> - - * cs-parser.jay (parse): Use Report.Error to flag errors instead - of ignoring it and letting the compile continue. - - * typemanager.cs (ChangeType): use an extra argument to return an - error condition instead of throwing an exception. - -2002-12-15 Miguel de Icaza <mi...@xi...> - - * expression.cs (Unary.TryReduce): mimic the code for the regular - code path. Perform an implicit cast in the cases where we can - implicitly convert to one of the integral types, and then reduce - based on that constant. This fixes bug #35483. - -2002-12-14 Gonzalo Paniagua Javier <go...@xi...> - - * typemanager.cs: fixed cut & paste error in GetRemoveMethod. - -2002-12-13 Gonzalo Paniagua Javier <go...@xi...> - - * namespace.cs: fixed bug #35489. - -2002-12-12 Miguel de Icaza <mi...@xi...> - - * class.cs: Remove some dead code. - - * cs-parser.jay: Estimate the number of methods needed - (RootContext.MethodCount); - - * cs-tokenizer.cs: Use char arrays for parsing identifiers and - numbers instead of StringBuilders. - - * support.cs (PtrHashtable): Add constructor with initial size; - We can now reduce reallocations of the method table. - -2002-12-10 Ravi Pratap <ra...@xi...> - - * attribute.cs (ApplyAttributes): Keep track of the emitted - attributes on a per-target basis. This fixes bug #35413. - -2002-12-10 Miguel de Icaza <mi...@xi...> - - * driver.cs (MainDriver): On rotor encoding 28591 does not exist, - default to the Windows 1252 encoding. - - (UnixParseOption): Support version, thanks to Alp for the missing - pointer. - - * AssemblyInfo.cs: Add nice assembly information. - - * cs-tokenizer.cs: Add fix from Felix to the #if/#else handler - (bug 35169). - - * cs-parser.jay: Allow a trailing comma before the close bracked - in the attribute_section production. - - * ecore.cs (FieldExpr.AddressOf): Until I figure out why the - address of the instance was being taken, I will take this out, - because we take the address of the object immediately here. - -2002-12-09 Ravi Pratap <ra...@xi...> - - * typemanager.cs (AreMultipleAllowed): Take care of the most - obvious case where attribute type is not in the current assembly - - stupid me ;-) - -2002-12-08 Miguel de Icaza <mi...@xi...> - - * ecore.cs (SimpleName.DoResolve): First perform lookups on using - definitions, instead of doing that afterwards. - - Also we use a nice little hack, depending on the constructor, we - know if we are a "composed" name or a simple name. Hence, we - avoid the IndexOf test, and we avoid - - * codegen.cs: Add code to assist in a bug reporter to track down - the source of a compiler crash. - -2002-12-07 Ravi Pratap <ra...@xi...> - - * attribute.cs (Attribute.ApplyAttributes) : Keep track of which attribute - types have been emitted for a given element and flag an error - if something which does not have AllowMultiple set is used more - than once. - - * typemanager.cs (RegisterAttributeAllowMultiple): Keep track of - attribute types and their corresponding AllowMultiple properties - - (AreMultipleAllowed): Check the property for a given type. - - * attribute.cs (Attribute.ApplyAttributes): Register the AllowMultiple - property in the case we have a TypeContainer. - - (Attributes.AddAttribute): Detect duplicates and just skip on - adding them. This trivial fix catches a pretty gross error in our - attribute emission - global attributes were being emitted twice! - - Bugzilla bug #33187 is now fixed. - -2002-12-06 Miguel de Icaza <mi...@xi...> - - * cs-tokenizer.cs (pp_expr): Properly recurse here (use pp_expr - instead of pp_and). - - * expression.cs (Binary.ResolveOperator): I can only use the - Concat (string, string, string) and Concat (string, string, - string, string) if the child is actually a concatenation of - strings. - -2002-12-04 Miguel de Icaza <mi...@xi...> - - * cs-tokenizer.cs: Small fix, because decimal_digits is used in a - context where we need a 2-character lookahead. - - * pending.cs (PendingImplementation): Rework so we can keep track - of interface types all the time, and flag those which were - implemented by parents as optional. - -2002-12-03 Miguel de Icaza <mi...@xi...> - - * expression.cs (Binary.ResolveOperator): Use - String.Concat(string,string,string) or - String.Concat(string,string,string,string) when possible. - - * typemanager: More helper methods. - - -Tue Dec 3 19:32:04 CET 2002 Paolo Molaro <lu...@xi...> - - * pending.cs: remove the bogus return from GetMissingInterfaces() - (see the 2002-11-06 entry: the mono runtime is now fixed in cvs). - -2002-12-02 Gonzalo Paniagua Javier <go...@xi...> - - * namespace.cs: avoid duplicated 'using xxx' being added to - using_clauses. This prevents mcs from issuing and 'ambiguous type' error - when we get more than one 'using' statement for the same namespace. - Report a CS0105 warning for it. - -2002-11-30 Miguel de Icaza <mi...@xi...> - - * cs-tokenizer.cs (consume_identifier): use read directly, instead - of calling getChar/putback, uses internal knowledge of it. - - (xtoken): Reorder tokenizer so most common patterns are checked - first. This reduces the compilation time in another 5% (from 8.11s - average to 7.73s for bootstrapping mcs on my Mobile p4/1.8ghz). - - The parsing time is 22% of the compilation in mcs, and from that - 64% is spent on the tokenization process. - - I tried using a binary search for keywords, but this is slower - than the hashtable. Another option would be to do a couple of - things: - - * Not use a StringBuilder, instead use an array of chars, - with a set value. Notice that this way we could catch - the 645 error without having to do it *afterwards*. - - * We could write a hand-parser to avoid the hashtable - compares altogether. - - The identifier consumption process takes 37% of the tokenization - time. Another 15% is spent on is_number. 56% of the time spent - on is_number is spent on Int64.Parse: - - * We could probably choose based on the string length to - use Int32.Parse or Int64.Parse and avoid all the 64-bit - computations. - - Another 3% is spend on wrapping `xtoken' in the `token' function. - - Handle 0xa0 as whitespace (#34752) - -2002-11-26 Miguel de Icaza <mi...@xi...> - - * typemanager.cs (IsCLRType): New routine to tell whether a type - is one of the builtin types. - - Maybe it needs to use TypeCodes to be faster. Maybe we could use - typecode in more places instead of doing pointer comparissions. - We could leverage some knowledge about the way the typecodes are - laid out. - - New code to cache namespaces in assemblies, it is currently not - invoked, to be used soon. - - * decl.cs (DeclSpace.MakeFQN): Simple optimization. - - * expression.cs (Binary.ResolveOperator): specially handle - strings, and do not perform user-defined operator overloading for - built-in types. - -2002-11-24 Miguel de Icaza <mi...@xi...> - - * cs-tokenizer.cs: Avoid calling Char.IsDigit which is an - internalcall as it is a pretty simple operation; Avoid whenever - possible to call Char.IsLetter. - - (consume_identifier): Cut by half the number of - hashtable calls by merging the is_keyword and GetKeyword behavior. - - Do not short-circuit, because if we do, we - report errors (ie, #if false && true would produce an invalid - directive error); - - -2002-11-24 Martin Baulig <ma...@xi...> - - * expression.cs (Cast.TryReduce): If we're in checked syntax, - check constant ranges and report a CS0221. Fixes #33186. - -2002-11-24 Martin Baulig <ma...@xi...> - - * cs-parser.jay: Make this work for uninitialized variable - declarations in the `for' initializer. Fixes #32416. - -2002-11-24 Martin Baulig <ma...@xi...> - - * ecore.cs (Expression.ConvertExplicit): Make casting from/to - System.Enum actually work. Fixes bug #32269, added verify-6.cs. - -2002-11-24 Martin Baulig <ma...@xi...> - - * expression.cs (Binary.DoNumericPromotions): Added `check_user_conv' - argument; if true, we also check for user-defined conversions. - This is only needed if both arguments are of a user-defined type. - Fixes #30443, added test-175.cs. - (Binary.ForceConversion): Pass the location argument to ConvertImplicit. - - * ecore.cs (Expression.ImplicitUserConversionExists): New method. - -2002-11-24 Martin Baulig <ma...@xi...> - - * expression.cs (ArrayAccess.GetStoreOpcode): New public static - function to get the store opcode. - (Invocation.EmitParams): Call ArrayAccess.GetStoreOpcode() and - only emit the Ldelema if the store opcode is Stobj. You must run - both test-34 and test-167 to test this. Fixes #34529. - -2002-11-23 Martin Baulig <ma...@xi...> - - * ecore.cs (Expression.MemberLookup): Added additional - `qualifier_type' argument which is used when we're being called - from MemberAccess.DoResolve() and null if we're called from a - SimpleName lookup. - (Expression.MemberLookupFailed): New method to report errors; this - does the CS1540 check and reports the correct error message. - - * typemanager.cs (MemberLookup): Added additional `qualifier_type' - argument for the CS1540 check and redone the way how we're dealing - with private members. See the comment in the source code for details. - (FilterWithClosure): Reverted this back to revision 1.197; renamed - `closure_start_type' to `closure_qualifier_type' and check whether - it's not null. It was not this filter being broken, it was just - being called with the wrong arguments. - - * expression.cs (MemberAccess.DoResolve): use MemberLookupFinal() - and pass it the correct `qualifier_type'; this also does the error - handling for us. - -2002-11-22 Miguel de Icaza <mi...@xi...> - - * expression.cs (Invocation.EmitParams): If the we are dealing - with a non-built-in value type, load its address as well. - - (ArrayCreation): Use a a pretty constant instead - of the hardcoded value 2. Use 6 instead of 2 for the number of - static initializers. - - (ArrayCreation.EmitDynamicInitializers): Peel enumerations, - because they are not really value types, just glorified integers. - - * driver.cs: Do not append .exe, the CSC compiler does not do it. - - * ecore.cs: Remove redundant code for enumerations, make them use - the same code path as everything else, fixes the casting issue - with enumerations in Windows.Forms. - - * attribute.cs: Do only cast to string if it is a string, the - validation happens later. - - * typemanager.cs: Temproary hack to avoid a bootstrap issue until - people upgrade their corlibs. - - * ecore.cs: Oops, enumerations were not following the entire code path - -2002-11-21 Miguel de Icaza <mi...@xi...> - - * typemanager.cs (FilterWithClosure): Commented out the test for - 1540 in typemanager.cs, as it has problems when accessing - protected methods from a parent class (see test-174.cs). - - * attribute.cs (Attribute.ValidateGuid): new method. - (Attribute.Resolve): Use above. - -2002-11-19 Miguel de Icaza <mi...@xi...> - - * enum.cs: In FindMembers, perform a recursive lookup for values. (34308) - - * ecore.cs (SimpleName.SimpleNameResolve): Remove the special - handling for enumerations, as we only needed the TypeContainer - functionality to begin with (this is required for the fix below to - work for enums that reference constants in a container class for - example). - - * codegen.cs (EmitContext): Make TypeContainer a DeclSpace. - - * enum.cs (Enum.Define): Use `this' instead of parent, so we have - a valid TypeBuilder to perform lookups on.o - - * class.cs (InheritableMemberSignatureCompare): Use true in the - call to GetGetMethod and GetSetMethod, because we are comparing - the signature, and we need to get the methods *even* if they are - private. - - (PropertyBase.CheckBase): ditto. - - * statement.cs (Switch.ResolveAndReduce, Block.EmitMeta, - GotoCase.Resolve): Use Peel on EmpytCasts. - - * ecore.cs (EmptyCast): drop child, add Peel method. - -2002-11-17 Martin Baulig <ma...@xi...> - - * ecore.cs (EmptyCast.Child): New public property. - - * statement.cs (SwitchLabel.ResolveAndReduce): Check whether the - label resolved to an EmptyCast. Fixes #34162. - (GotoCase.Resolve): Likewise. - (Block.EmitMeta): Likewise. - -2002-11-17 Martin Baulig <ma...@xi...> - - * expression.cs (Invocation.BetterConversion): Prefer int over - uint; short over ushort; long over ulong for integer literals. - Use ImplicitConversionExists instead of StandardConversionExists - since we also need to check for user-defined implicit conversions. - Fixes #34165. Added test-173.cs. - -2002-11-16 Martin Baulig <ma...@xi...> - - * expression.cs (Binary.EmitBranchable): Eliminate comparisions - with the `true' and `false' literals. Fixes #33151. - -2002-11-16 Martin Baulig <ma...@xi...> - - * typemanager.cs (RealMemberLookup): Reverted Miguel's patch from - October 22nd; don't do the cs1540 check for static members. - - * ecore.cs (PropertyExpr.ResolveAccessors): Rewrote this; we're - now using our own filter here and doing the cs1540 check again. - -2002-11-16 Martin Baulig <ma...@xi...> - - * support.cs (InternalParameters): Don't crash if we don't have - any fixed parameters. Fixes #33532. - -2002-11-16 Martin Baulig <ma...@xi...> - - * decl.cs (MemberCache.AddMethods): Use BindingFlags.FlattenHierarchy - when looking up static methods to make this work on Windows. - Fixes #33773. - -2002-11-16 Martin Baulig <ma...@xi...> - - * ecore.cs (PropertyExpr.VerifyAssignable): Check whether we have - a setter rather than using PropertyInfo.CanWrite. - -2002-11-15 Nick Drochak <ndr...@go...> - - * class.cs: Allow acces to block member by subclasses. Fixes build - breaker. - -2002-11-14 Martin Baulig <ma...@xi...> - - * class.cs (Constructor.Emit): Added the extern/block check. - Fixes bug #33678. - -2002-11-14 Martin Baulig <ma...@xi...> - - * expression.cs (IndexerAccess.DoResolve): Do a DeclaredOnly - iteration while looking for indexers, this is needed because the - indexer may have a different name in our base classes. Fixed the - error reporting (no indexers at all, not get accessor, no - overloaded match). Fixes bug #33089. - (IndexerAccess.DoResolveLValue): Likewise. - -2002-11-14 Martin Baulig <ma...@xi...> - - * class.cs (PropertyBase.CheckBase): Make this work for multiple - indexers. Fixes the first part of bug #33089. - (MethodSignature.InheritableMemberSignatureCompare): Added support - for properties. - -2002-11-13 Ravi Pratap <ra...@xi...> - - * attribute.cs (Attribute.Resolve): Catch the - NullReferenceException and report it since it isn't supposed to - happen. - -2002-11-12 Miguel de Icaza <mi...@xi...> - - * expression.cs (Binary.EmitBranchable): Also handle the cases for - LogicalOr and LogicalAnd that can benefit from recursively - handling EmitBranchable. The code now should be nice for Paolo. - -2002-11-08 Miguel de Icaza <mi...@xi...> - - * typemanager.cs (LookupType): Added a negative-hit hashtable for - the Type lookups, as we perform quite a number of lookups on - non-Types. This can be removed once we can deterministically tell - whether we have a type or a namespace in advance. - - But this might require special hacks from our corlib. - - * TODO: updated. - - * ecore.cs (TryImplicitIntConversion): Handle conversions to float - and double which avoids a conversion from an integer to a double. - - * expression.cs: tiny optimization, avoid calling IsConstant, - because it effectively performs the lookup twice. - -2002-11-06 Miguel de Icaza <mi...@xi...> - - But a bogus return here to keep the semantics of the old code - until the Mono runtime is fixed. - - * pending.cs (GetMissingInterfaces): New method used to remove all - the interfaces that are already implemented by our parent - classes from the list of pending methods. - - * interface.cs: Add checks for calls after ResolveTypeExpr. - -2002-11-05 Miguel de Icaza <mi...@xi...> - - * class.cs (Class.Emit): Report warning 67: event not used if the - warning level is beyond 3. - - * ecore.cs (Expression.ConvertExplicit): Missed a check for expr - being a NullLiteral. - - * cs-parser.jay: Fix, Gonzalo reverted the order of the rank - specifiers. - - * class.cs (TypeContainer.GetClassBases): Cover a missing code - path that might fail if a type can not be resolved. - - * expression.cs (Binary.Emit): Emit unsigned versions of the - operators. - - * driver.cs: use error 5. - -2002-11-02 Gonzalo Paniagua Javier <go...@gn...> - - * cs-parser.jay: simplified a rule and 5 SR conflicts dissapeared. - -2002-11-01 Miguel de Icaza <mi...@xi...> - - * cs-parser.jay (switch_section): A beautiful patch from Martin - Baulig that fixed 33094. - -2002-10-31 Miguel de Icaza <mi...@xi...> - - * ecore.cs (PropertyExpr.DoResolveLValue, PropertyExpr.DoResolve): - Check whether the base is abstract and report an error if so. - - * expression.cs (IndexerAccess.DoResolveLValue, - IndexerAccess.DoResolve): ditto. - - (Invocation.DoResolve): ditto. - - (Invocation.FullMethodDesc): Improve the report string. - - * statement.cs (Block): Eliminate IsVariableDefined as it is - basically just a wrapper for GetVariableInfo. - - * ecore.cs (SimpleName): Use new - - * support.cs (ReflectionParamter.ParameterType): We unwrap the - type, as we return the actual parameter ref/unref state on a - different call. - -2002-10-30 Miguel de Icaza <mi...@xi...> - - * support.cs: Return proper flags REF/OUT fixing the previous - commit. - - * expression.cs: Reverted last patch, that was wrong. Is_ref is - not used to mean `ref' but `ref or out' in ParameterReference - - * delegate.cs (FullDelegateDesc): use ParameterDesc to get the - full type signature instead of calling TypeManger.CSharpName - ourselves. - - * support.cs (InternalParameters.ParameterDesc): Do not compare - directly to the modflags, because REF/OUT will actually be bitsets - if set. - - * delegate.cs (VerifyMethod): Check also the modifiers. - - * cs-tokenizer.cs: Fix bug where floating point values with an - exponent where a sign was missing was ignored. - - * driver.cs: Allow multiple assemblies to be specified in a single - /r: argument - -2002-10-28 Miguel de Icaza <mi...@xi...> - - * cs-parser.jay: Ugly. We had to add a multiplicative_expression, - because identifiers after a parenthesis would end up in this kind - of production, and we needed to desamiguate it for having casts - like: - - (UserDefinedType *) xxx - -2002-10-24 Miguel de Icaza <mi...@xi...> - - * typemanager.cs (RealMemberLookup): when we deal with a subclass, - we should set on the Bindingflags.NonPublic, but not turn on - private_ok. private_ok controls whether a Private member is - returned (this is chekced on the filter routine), while the - BindingFlags.NonPublic just controls whether private/protected - will be allowed. This fixes the problem part of the problem of - private properties being allowed to be used in derived classes. - - * expression.cs (BaseAccess): Provide an DoResolveLValue method, - so we can call the children DoResolveLValue method (this will - properly signal errors on lvalue assignments to base properties) - - * ecore.cs (PropertyExpr.ResolveAccessors): If both setter and - getter are null, and we have a property info, we know that this - happened because the lookup failed, so we report an error 122 for - protection level violation. - - We also silently return if setter and getter are null in the - resolve functions, this condition only happens if we have flagged - the error before. This is the other half of the problem. - - (PropertyExpr.ResolveAccessors): Turns out that PropertyInfo does - not have accessibility information, that is why we were returning - true in the filter function in typemanager.cs. - - To properly report 122 (property is inaccessible because of its - protection level) correctly, we report this error in ResolveAccess - by failing if both the setter and the getter are lacking (ie, the - lookup failed). - - DoResolve and DoLResolve have been modified to check for both - setter/getter being null and returning silently, the reason being - that I did not want to put the knowledge about this error in upper - layers, like: - - int old = Report.Errors; - x = new PropertyExpr (...); - if (old != Report.Errors) - return null; - else - return x; - - So the property expr is returned, but it is invalid, so the error - will be flagged during the resolve process. - - * class.cs: Remove InheritablePropertySignatureCompare from the - class, as we no longer depend on the property signature to compute - whether it is possible to implement a method or not. - - The reason is that calling PropertyInfo.GetGetMethod will return - null (in .NET, in Mono it works, and we should change this), in - cases where the Get Method does not exist in that particular - class. - - So this code: - - class X { public virtual int A { get { return 1; } } } - class Y : X { } - class Z : Y { public override int A { get { return 2; } } } - - Would fail in Z because the parent (Y) would not have the property - defined. So we avoid this completely now (because the alternative - fix was ugly and slow), and we now depend exclusively on the - method names. - - (PropertyBase.CheckBase): Use a method-base mechanism to find our - reference method, instead of using the property. - - * typemanager.cs (GetPropertyGetter, GetPropertySetter): These - routines are gone now. - - * typemanager.cs (GetPropertyGetter, GetPropertySetter): swap the - names, they were incorrectly named. - - * cs-tokenizer.cs: Return are more gentle token on failure. - - * pending.cs (PendingImplementation.InterfaceMethod): This routine - had an out-of-sync index variable, which caused it to remove from - the list of pending methods the wrong method sometimes. - -2002-10-22 Miguel de Icaza <mi...@xi...> - - * ecore.cs (PropertyExpr): Do not use PropertyInfo.CanRead, - CanWrite, because those refer to this particular instance of the - property, and do not take into account the fact that we can - override single members of a property. - - Constructor requires an EmitContext. The resolution process does - not happen here, but we need to compute the accessors before, - because the resolution does not always happen for properties. - - * typemanager.cs (RealMemberLookup): Set private_ok if we are a - subclass, before we did not update this flag, but we did update - bindingflags. - - (GetAccessors): Drop this routine, as it did not work in the - presence of partially overwritten set/get methods. - - Notice that this broke the cs1540 detection, but that will require - more thinking. - -2002-10-22 Gonzalo Paniagua Javier <go...@xi...> - - * class.cs: - * codegen.cs: - * driver.cs: issue a warning instead of an error if we don't support - debugging for the platform. Also ignore a couple of errors that may - arise when trying to write the symbols. Undo my previous patch. - -2002-10-22 Gonzalo Paniagua Javier <go...@xi...> - - * driver.cs: ignore /debug switch except for Unix platforms. - -2002-10-23 Nick Drochak <ndr...@go...> - - * makefile: Remove mcs2.exe and mcs3.exe on 'make clean' - -2002-10-21 Miguel de Icaza <mi...@xi...> - - * driver.cs: Do not make mcs-debug conditional, so we do not break - builds that use it. - - * statement.cs (UsageVector.MergeChildren): I would like Martin to - review this patch. But basically after all the children variables - have been merged, the value of "Breaks" was not being set to - new_breaks for Switch blocks. I think that it should be set after - it has executed. Currently I set this to the value of new_breaks, - but only if new_breaks is FlowReturn.ALWAYS, which is a bit - conservative, but I do not understand this code very well. - - I did not break anything in the build, so that is good ;-) - - * cs-tokenizer.cs: Also allow \r in comments as a line separator. - -2002-10-20 Mark Crichton <cri...@gi...> - - * cfold.cs: Fixed compile blocker. Really fixed it this time. - -2002-10-20 Nick Drochak <ndr...@go...> - - * cfold.cs: Fixed compile blocker. - -2002-10-20 Miguel de Icaza <mi...@xi...> - - * driver.cs: I was chekcing the key, not the file. - -2002-10-19 Ravi Pratap <ra...@xi...> - - * ecore.cs (UserDefinedConversion): Get rid of the bogus error - message that we were generating - we just need to silently return - a null. - -2002-10-19 Miguel de Icaza <mi...@xi...> - - * class.cs (Event.Define): Change my previous commit, as this - breaks the debugger. This is a temporary hack, as it seems like - the compiler is generating events incorrectly to begin with. - - * expression.cs (Binary.ResolveOperator): Added support for - "U operator - (E x, E y)" - - * cfold.cs (BinaryFold): Added support for "U operator - (E x, E - y)". - - * ecore.cs (FieldExpr.AddressOf): We had a special code path for - init-only variables, but this path did not take into account that - there might be also instance readonly variables. Correct this - problem. - - This fixes bug 32253 - - * delegate.cs (NewDelegate.DoResolve): Catch creation of unsafe - delegates as well. - - * driver.cs: Change the extension for modules to `netmodule' - - * cs-parser.jay: Improved slightly the location tracking for - the debugger symbols. - - * class.cs (Event.Define): Use Modifiers.FieldAttr on the - modifiers that were specified instead of the hardcoded value - (FamAndAssem). This was basically ignoring the static modifier, - and others. Fixes 32429. - - * statement.cs (Switch.SimpleSwitchEmit): Simplified the code, and - fixed a bug in the process (32476) - - * expression.cs (ArrayAccess.EmitAssign): Patch from - hwa...@ya... that fixes bug 31834.3 - -2002-10-18 Miguel de Icaza <mi...@xi...> - - * driver.cs: Make the module extension .netmodule. - -2002-10-16 Miguel de Icaza <mi...@xi...> - - * driver.cs: Report an error if the resource file is not found - instead of crashing. - - * ecore.cs (PropertyExpr.EmitAssign): Pass IsBase instead of - false, like Emit does. - -2002-10-16 Nick Drochak <ndr...@go...> - - * typemanager.cs: Remove unused private member. Also reported mcs - bug to report this as a warning like csc. - -2002-10-15 Martin Baulig <ma...@gn...> - - * statement.cs (Statement.Emit): Made this a virtual method; emits - the line number info and calls DoEmit(). - (Statement.DoEmit): New protected abstract method, formerly knows - as Statement.Emit(). - - * codegen.cs (EmitContext.Mark): Check whether we have a symbol writer. - -2002-10-11 Miguel de Icaza <mi...@xi...> - - * class.cs: Following the comment from 2002-09-26 to AddMethod, I - have fixed a remaining problem: not every AddXXXX was adding a - fully qualified name. - - Now everyone registers a fully qualified name in the DeclSpace as - being defined instead of the partial name. - - Downsides: we are slower than we need to be due to the excess - copies and the names being registered this way. - - The reason for this is that we currently depend (on the corlib - bootstrap for instance) that types are fully qualified, because - we dump all the types in the namespace, and we should really have - types inserted into the proper namespace, so we can only store the - basenames in the defined_names array. - -2002-10-10 Martin Baulig <ma...@gn...> - - * expression.cs (ArrayAccess.EmitStoreOpcode): Reverted the patch - from bug #31834, see the bug report for a testcase which is - miscompiled. - -2002-10-10 Martin Baulig <ma...@gn...> - - * codegen.cs (EmitContext.Breaks): Removed, we're now using the - flow analysis code for this. - - * statement.cs (Do, While, For): Tell the flow analysis code about - infinite loops. - (FlowBranching.UsageVector): Added support for infinite loops. - (Block.Resolve): Moved the dead code elimination here and use flow - analysis to do it. - -2002-10-09 Miguel de Icaza <mi...@xi...> - - * class.cs (Field.Define): Catch cycles on struct type - definitions. - - * typemanager.cs (IsUnmanagedtype): Do not recursively check - fields if the fields are static. We only need to check instance - fields. - - * expression.cs (As.DoResolve): Test for reference type. - - * statement.cs (Using.ResolveExpression): Use - ConvertImplicitRequired, not ConvertImplicit which reports an - error on failture - (Using.ResolveLocalVariableDecls): ditto. - - * expression.cs (Binary.ResolveOperator): Report errors in a few - places where we had to. - - * typemanager.cs (IsUnmanagedtype): Finish implementation. - -2002-10-08 Miguel de Icaza <mi...@xi...> - - * expression.cs: Use StoreFromPtr instead of extracting the type - and then trying to use Stelem. Patch is from hwa...@ya... - - * ecore.cs (ImplicitReferenceConversion): It is possible to assign - an enumeration value to a System.Enum, but System.Enum is not a - value type, but an class type, so we need to box. - - (Expression.ConvertExplicit): One codepath could return - errors but not flag them. Fix this. Fixes #31853 - - * parameter.cs (Resolve): Do not allow void as a parameter type. - -2002-10-06 Martin Baulig <ma...@gn...> - - * statemenc.cs (FlowBranching.SetParameterAssigned): Don't crash - if it's a class type and not a struct. Fixes #31815. - -2002-10-06 Martin Baulig <ma...@gn...> - - * statement.cs: Reworked the flow analysis code a bit to make it - usable for dead code elimination. - -2002-10-06 Gonzalo Paniagua Javier <go...@xi...> - - * cs-parser.jay: allow empty source files. Fixes bug #31781. - -2002-10-04 Miguel de Icaza <mi...@xi...> - - * expression.cs (ComposedCast.DoResolveType): A quick workaround - to fix the test 165, will investigate deeper. - -2002-10-04 Martin Baulig <ma...@gn...> - - * statement.cs (FlowBranching.UsageVector.MergeChildren): Make - finally blocks actually work. - (Try.Resolve): We don't need to create a sibling for `finally' if - there is no finally block. - -2002-10-04 Martin Baulig <ma...@gn...> - - * class.cs (Constructor.Define): The default accessibility for a - non-default constructor is private, not public. - -2002-10-04 Miguel de Icaza <mi...@xi...> - - * class.cs (Constructor): Make AllowedModifiers public, add - EXTERN. - - * cs-parser.jay: Perform the modifiers test here, as the - constructor for the Constructor class usually receives a zero - because of the way we create it (first we create, later we - customize, and we were never checking the modifiers). - - * typemanager.cs (Typemanager.LookupTypeDirect): This new function - is a version of LookupTypeReflection that includes the type-name - cache. This can be used as a fast path for functions that know - the fully qualified name and are only calling into *.GetType() to - obtain a composed type. - - This is also used by TypeManager.LookupType during its type - composition. - - (LookupType): We now also track the real type name, as sometimes - we can get a quey for the real type name from things like - ComposedCast. This fixes bug 31422. - - * expression.cs (ComposedCast.Resolve): Since we are obtaining a - complete type fullname, it does not have to go through the type - resolution system to obtain the composed version of the type (for - obtaining arrays or pointers). - - (Conditional.Emit): Use the EmitBoolExpression to - generate nicer code, as requested by Paolo. - - (ArrayCreation.CheckIndices): Use the patch from - hwa...@ya... to validate the array initializers. - -2002-10-03 Miguel de Icaza <mi...@xi...> - - * class.cs (ConstructorInitializer.Emit): simplify code by using - Invocation.EmitCall, and at the same time, fix the bugs in calling - parent constructors that took variable arguments. - - * ecore.cs (Expression.ConvertNumericExplicit, - Expression.ImplicitNumericConversion): Remove the code that - manually wrapped decimal (InternalTypeConstructor call is now gone - as well). - - * expression.cs (Cast.TryReduce): Also handle decimal types when - trying to perform a constant fold on the type. - - * typemanager.cs (IsUnmanagedtype): Partially implemented. - - * parameter.cs: Removed ResolveAndDefine, as it was not needed, as - that only turned off an error report, and did nothing else. - -2002-10-02 Miguel de Icaza <mi...@xi...> - - * driver.cs: Handle and ignore /fullpaths - -2002-10-01 Miguel de Icaza <mi...@xi...> - - * expression.cs (Binary.ResolveOperator): Catch the case where - DoNumericPromotions returns true, - - (Binary.DoNumericPromotions): Simplify the code, and the tests. - -2002-09-27 Miguel de Icaza <mi...@xi...> - - * ecore.cs (EventExpr.Emit): Instead of emitting an exception, - report error 70. - -2002-09-26 Miguel de Icaza <mi...@xi...> - - * ecore.cs (ConvertNumericExplicit): It is not enough that the - conversion exists, but it is also required that the conversion be - performed. This manifested in "(Type64Enum) 2". - - * class.cs (TypeManager.AddMethod): The fix is not to change - AddEnum, because that one was using a fully qualified name (every - DeclSpace derivative does), but to change the AddMethod routine - that was using an un-namespaced name. This now correctly reports - the duplicated name. - - Revert patch until I can properly fix it. The issue - is that we have a shared Type space across all namespaces - currently, which is wrong. - - Options include making the Namespace a DeclSpace, and merge - current_namespace/current_container in the parser. - -2002-09-25 Miguel de Icaza <mi...@xi...> - - * cs-parser.jay: Improve error reporting when we get a different - kind of expression in local_variable_type and - local_variable_pointer_type. - - Propagate this to avoid missleading errors being reported. - - * ecore.cs (ImplicitReferenceConversion): treat - TypeManager.value_type as a target just like object_type. As - code like this: - - ValueType v = 1; - - Is valid, and needs to result in the int 1 being boxed before it - is assigned to the value type v. - - * class.cs (TypeContainer.AddEnum): Use the basename, not the name - to validate the enumeration name. - - * expression.cs (ArrayAccess.EmitAssign): Mimic the same test from - EmitDynamicInitializers for the criteria to use Ldelema. Thanks - to hwa...@ya... for finding the bug and providing a patch. - - * ecore.cs (TryImplicitIntConversion): When doing an - implicit-enumeration-conversion, check if the type is 64-bits and - perform a conversion before passing to EnumConstant. - -2002-09-23 Miguel de Icaza <mi...@xi...> - - * decl.cs (Error_AmbiguousTypeReference); New routine used to - report ambiguous type references. Unlike the MS version, we - report what the ambiguity is. Innovation at work ;-) - - (DeclSpace.FindType): Require a location argument to - display when we display an ambiguous error. - - * ecore.cs: (SimpleName.DoResolveType): Pass location to FindType. - - * interface.cs (GetInterfaceTypeByName): Pass location to FindType. - - * expression.cs (EmitDynamicInitializers): Apply patch from - hwa...@ya... that fixes the order in which we emit our - initializers. - -2002-09-21 Martin Baulig <ma...@gn...> - - * delegate.cs (Delegate.VerifyApplicability): Make this work if the - delegate takes no arguments. - -2002-09-20 Miguel de Icaza <mi...@xi...> - - * constant.cs: Use Conv_U8 instead of Conv_I8 when loading longs - from integers. - - * expression.cs: Extract the underlying type. - - * ecore.cs (StoreFromPtr): Use TypeManager.IsEnumType instad of IsEnum - - * decl.cs (FindType): Sorry about this, fixed the type lookup bug. - -2002-09-19 Miguel de Icaza <mi...@xi...> - - * class.cs (TypeContainer.DefineType): We can not use the nice - PackingSize with the size set to 1 DefineType method, because it - will not allow us to define the interfaces that the struct - implements. - - This completes the fixing of bug 27287 - - * ecore.cs (Expresion.ImplicitReferenceConversion): `class-type S' - means also structs. This fixes part of the problem. - (Expresion.ImplicitReferenceConversionExists): ditto. - - * decl.cs (DeclSparce.ResolveType): Only report the type-not-found - error if there were no errors reported during the type lookup - process, to avoid duplicates or redundant errors. Without this - you would get an ambiguous errors plus a type not found. We have - beaten the user enough with the first error. - - (DeclSparce.FindType): Emit a warning if we have an ambiguous - reference. - - * ecore.cs (SimpleName.DoResolveType): If an error is emitted - during the resolution process, stop the lookup, this avoids - repeated error reports (same error twice). - - * rootcontext.cs: Emit a warning if we have an ambiguous reference. - - * typemanager.cs (LookupType): Redo the type lookup code to match - the needs of System.Reflection. - - The issue is that System.Reflection requires references to nested - types to begin with a "+" sign instead of a dot. So toplevel - types look like: "NameSpace.TopLevelClass", and nested ones look - like "Namespace.TopLevelClass+Nested", with arbitrary nesting - levels. - -2002-09-19 Martin Baulig <ma...@gn...> - - * codegen.cs (EmitContext.EmitTopBlock): If control flow analysis - says that a method always returns or always throws an exception, - don't report the CS0161. - - * statement.cs (FlowBranching.UsageVector.MergeChildren): Always - set `Returns = new_returns'. - -2002-09-19 Martin Baulig <ma...@gn...> - - * expression.cs (MemberAccess.ResolveMemberAccess): When resolving - to an enum constant, check for a CS0176. - -2002-09-18 Miguel de Icaza <mi...@xi...> - - * class.cs (TypeContainer.CheckPairedOperators): Now we check - for operators that must be in pairs and report errors. - - * ecore.cs (SimpleName.DoResolveType): During the initial type - resolution process, when we define types recursively, we must - check first for types in our current scope before we perform - lookups in the enclosing scopes. - - * expression.cs (MakeByteBlob): Handle Decimal blobs. - - (Invocation.VerifyArgumentsCompat): Call - TypeManager.TypeToCoreType on the parameter_type.GetElementType. - I thought we were supposed to always call this, but there are a - few places in the code where we dont do it. - -2002-09-17 Miguel de Icaza <mi...@xi...> - - * driver.cs: Add support in -linkres and -resource to specify the - name of the identifier. - -2002-09-16 Miguel de Icaza <mi...@xi...> - - * ecore.cs (StandardConversionExists): Sync with the conversion - code: allow anything-* to void* conversions. - - (FindMostSpecificSource): Use an Expression argument - instead of a Type, because we might be handed over a Literal which - gets a few more implicit conversions that plain types do not. So - this information was being lost. - - Also, we drop the temporary type-holder expression when not - required. - -2002-09-17 Martin Baulig <ma...@gn...> - - * class.cs (PropertyBase.CheckBase): Don't check the base class if - this is an explicit interface implementation. - -2002-09-17 Martin Baulig <ma...@gn...> - - * class.cs (PropertyBase.CheckBase): Make this work for indexers with - different `IndexerName' attributes. - - * expression.cs (BaseIndexerAccess): Rewrote this class to use IndexerAccess. - (IndexerAccess): Added special protected ctor for BaseIndexerAccess and - virtual CommonResolve(). - -2002-09-16 Miguel de Icaza <mi...@xi...> - - * enum.cs (LookupEnumValue): Use the EnumConstant declared type, - and convert that to the UnderlyingType. - - * statement.cs (Foreach.Resolve): Indexers are just like variables - or PropertyAccesses. - - * cs-tokenizer.cs (consume_string): Track line numbers and columns - inside quoted strings, we were not doing this before. - -2002-09-16 Martin Baulig <ma...@gn...> - - * ecore.cs (MethodGroupExpr.DoResolve): If we have an instance expression, - resolve it. This is needed for the definite assignment check of the - instance expression, fixes bug #29846. - (PropertyExpr.DoResolve, EventExpr.DoResolve): Likewise. - -2002-09-16 Nick Drochak <ndr...@go...> - - * parameter.cs: Fix compile error. Cannot reference static member - from an instance object. Is this an mcs bug? - -2002-09-14 Martin Baulig <ma...@gn...> - - * decl.cs (MemberCache.SetupCacheForInterface): Don't add an interface - multiple times. Fixes bug #30295, added test-166.cs. - -2002-09-14 Martin Baulig <ma...@gn...> - - * statement.cs (Block.Emit): Don't emit unreachable code. - (Switch.SimpleSwitchEmit, Switch.TableSwitchEmit): Check for missing - `break' statements. - (Goto.Emit, Continue.Emit): Set ec.Breaks = true. - -2002-09-14 Martin Baulig <ma...@gn...> - - * parameter.cs (Parameter.Attributes): Make this work if Modifier.ISBYREF - is set. - -2002-09-14 Martin Baulig <ma...@gn...> - - * typemanager.cs (TypeManager.IsNestedChildOf): This must return false - if `type == parent' since in this case `type.IsSubclassOf (parent)' will - be false on the ms runtime. - -2002-09-13 Martin Baulig <ma...@gn...> - - * ecore.cs (SimpleName.SimpleNameResolve): Include the member name in - the CS0038 error message. - -2002-09-12 Miguel de Icaza <mi...@xi...> - - * expression.cs (CheckedExpr, UnCheckedExpr): If we have a - constant inside, return it. - -2002-09-12 Martin Baulig <ma...@gn...> - - * cfold.cs (ConstantFold.DoConstantNumericPromotions): Check whether an - implicit conversion can be done between enum types. - - * enum.cs (Enum.LookupEnumValue): If the value is an EnumConstant, - check whether an implicit conversion to the current enum's UnderlyingType - exists and report an error if not. - - * codegen.cs (CodeGen.Init): Delete the symbol file when compiling - without debugging support. - - * delegate.cs (Delegate.CloseDelegate): Removed, use CloseType instead. - Fixes bug #30235. Thanks to Ricardo Fernández Pascual. - -2002-09-12 Martin Baulig <ma...@gn...> - - * typemanager.cs (TypeManager.IsNestedChildOf): New method. - - * ecore.cs (IMemberExpr.DeclaringType): New property. - (SimpleName.SimpleNameResolve): Check whether we're accessing a - nonstatic member of an outer type (CS0038). - -2002-09-11 Miguel de Icaza <mi...@xi...> - - * driver.cs: Activate the using-error detector at warning level - 4 (at least for MS-compatible APIs). - - * namespace.cs (VerifyUsing): Small buglett fix. - - * pending.cs (PendingImplementation): pass the container pointer. - - * interface.cs (GetMethods): Allow for recursive definition. Long - term, I would like to move every type to support recursive - definitions, not the current ordering mechanism that we have right - now. - - The situation is this: Attributes are handled before interfaces, - so we can apply attributes to interfaces. But some attributes - implement interfaces, we will now handle the simple cases - (recursive definitions will just get an error). - - * parameter.cs: Only invalidate types at the end if we fail to - lookup all types. - -2002-09-09 Martin Baulig <ma...@gn...> - - * ecore.cs (PropertyExpr.Emit): Also check for - TypeManager.system_int_array_get_length so this'll also work when - compiling corlib. Fixes #30003. - -2002-09-09 Martin Baulig <ma...@gn...> - - * expression.cs (ArrayCreation.MakeByteBlob): Added support for enums - and throw an exception if we can't get the type's size. Fixed #30040, - added test-165.cs. - -2002-09-09 Martin Baulig <ma...@gn...> - - * ecore.cs (PropertyExpr.DoResolve): Added check for static properies. - - * expression.cs (SizeOf.DoResolve): Sizeof is only allowed in unsafe - context. Fixes bug #30027. - - * delegate.cs (NewDelegate.Emit): Use OpCodes.Ldvirtftn for - virtual functions. Fixes bug #30043, added test-164.cs. - -2002-09-08 Ravi Pratap <ra...@xi...> - - * attribute.cs : Fix a small NullRef crash thanks to my stupidity. - -2002-09-08 Nick Drochak <ndr...@go...> - - * driver.cs: Use an object to get the windows codepage since it's not a - static property. - -2002-09-08 Miguel de Icaza <mi...@xi...> - - * statement.cs (For.Emit): for infinite loops (test == null) - return whether there is a break inside, not always "true". - - * namespace.cs (UsingEntry): New struct to hold the name of the - using definition, the location where it is defined, and whether it - has been used in a successful type lookup. - - * rootcontext.cs (NamespaceLookup): Use UsingEntries instead of - strings. - - * decl.cs: ditto. - -2002-09-06 Ravi Pratap <ra...@xi...> - - * attribute.cs : Fix incorrect code which relied on catching - a NullReferenceException to detect a null being passed in - where an object was expected. - -2002-09-06 Miguel de Icaza <mi...@xi...> - - * statement.cs (Try): flag the catch variable as assigned - - * exp... [truncated message content] |