Miguel de Icaza [Tue, 8 Apr 2003 23:02:13 +0000 (23:02 -0000)]
2003-04-05 Martin Baulig <martin@ximian.com>
* statement.cs (FlowBranching.UsageVector.MergeChildren): Fix bug #40670.
svn path=/trunk/mcs/; revision=13425
Miguel de Icaza [Tue, 8 Apr 2003 23:02:09 +0000 (23:02 -0000)]
Fix compilation.
svn path=/trunk/mcs/; revision=13424
Miguel de Icaza [Tue, 8 Apr 2003 23:02:06 +0000 (23:02 -0000)]
2003-04-02 Miguel de Icaza <miguel@ximian.com>
* class.cs (Event.Define): Do not allow abstract events to have
initializers.
2003-04-01 Miguel de Icaza <miguel@ximian.com>
* cs-parser.jay: Add error productions for ADD/REMOVE missing a
block in event declarations.
svn path=/trunk/mcs/; revision=13423
Miguel de Icaza [Tue, 8 Apr 2003 23:01:57 +0000 (23:01 -0000)]
2003-04-01 Miguel de Icaza <miguel@ximian.com>
* expression.cs (Is.Emit): For action `LeaveOnStack' we were
leaving a class on the stack instead of a boolean value (int
0/1). Change the code so we compare against null, and then the
svn path=/trunk/mcs/; revision=13422
Miguel de Icaza [Tue, 8 Apr 2003 23:01:49 +0000 (23:01 -0000)]
2003-04-01 Miguel de Icaza <miguel@ximian.com>
* class.cs (TypeContainer.GetClassBases): We were checking for the
parent class being sealed too late.
* expression.cs (Binary.Emit): For <= and >= when dealing with
floating point values, use cgt.un and clt.un instead of cgt and
clt alone.
svn path=/trunk/mcs/; revision=13421
Miguel de Icaza [Tue, 8 Apr 2003 23:01:33 +0000 (23:01 -0000)]
2003-04-01 Zoltan Varga <vargaz@freemail.hu>
* statement.cs: Apply the same optimization as MS: skip the
GetEnumerator returning an IEnumerator, and use the one returning a
CharEnumerator instead. This allows us to avoid the try-finally block
and the boxing.
svn path=/trunk/mcs/; revision=13420
Miguel de Icaza [Tue, 8 Apr 2003 23:01:29 +0000 (23:01 -0000)]
2003-03-31 Gaurav Vaish <gvaish_mono@lycos.com>
* cs-parser.jay: Attributes cannot be applied to
namespaces. Fixes #40473
svn path=/trunk/mcs/; revision=13419
Miguel de Icaza [Tue, 8 Apr 2003 23:01:25 +0000 (23:01 -0000)]
2003-03-31 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* class.cs:
(Add*): check if the name is valid using the full name for constants,
fields, properties and events.
svn path=/trunk/mcs/; revision=13418
Miguel de Icaza [Tue, 8 Apr 2003 23:01:16 +0000 (23:01 -0000)]
2003-03-28 Miguel de Icaza <miguel@ximian.com>
* enum.cs (Enum.DefineType, Enum.IsValidEnumConstant): Also allow
char constants to be part of the enumeration.
svn path=/trunk/mcs/; revision=13417
Miguel de Icaza [Tue, 8 Apr 2003 23:01:10 +0000 (23:01 -0000)]
2003-02-25 Miguel de Icaza <miguel@ximian.com>
* makefile (all): Make it so that doing `make' will run the
default tests depending on Windows/Linux.
svn path=/trunk/mcs/; revision=13416
Miguel de Icaza [Tue, 8 Apr 2003 23:01:02 +0000 (23:01 -0000)]
2003-03-28 Miguel de Icaza <miguel@ximian.com>
* class.cs (TypeContainer.CheckPairedOperators): Report error for missmatch on
operator true/false as required by the spec.
svn path=/trunk/mcs/; revision=13415
Miguel de Icaza [Tue, 8 Apr 2003 23:00:53 +0000 (23:00 -0000)]
2003-03-28 Miguel de Icaza <miguel@ximian.com>
* expression.cs (Unary.ResolveOperator): In LogicalNot, do an
implicit conversion to boolean.
* statement.cs (Statement.ResolveBoolean): A boolean expression is
also one where the type implements `operator true'.
* ecore.cs (Expression.GetOperatorTrue): New helper routine to
get an expression that will invoke operator true based on an
expression.
(GetConversionOperators): Removed the hack that called op_True
here.
(Expression.ResolveBoolean): Move this from Statement.
svn path=/trunk/mcs/; revision=13414
Miguel de Icaza [Tue, 8 Apr 2003 23:00:44 +0000 (23:00 -0000)]
2003-03-17 Miguel de Icaza <miguel@ximian.com>
* ecore.cs (FieldExpr): do not allow initialization of initonly
fields on derived classes
svn path=/trunk/mcs/; revision=13413
Miguel de Icaza [Tue, 8 Apr 2003 23:00:40 +0000 (23:00 -0000)]
2003-03-13 Martin Baulig <martin@ximian.com>
* statement.cs (Block.Emit): Call ig.BeginScope() and
ig.EndScope() when compiling with debugging info; call
LocalBuilder.SetLocalSymInfo _after_ opening the scope.
svn path=/trunk/mcs/; revision=13412
Miguel de Icaza [Tue, 8 Apr 2003 23:00:36 +0000 (23:00 -0000)]
2003-03-08 Miguel de Icaza <miguel@ximian.com>
* expression.cs (Indexers): Do not construct immediately, allow
for new members to be appended as we go. Fixes 38143
svn path=/trunk/mcs/; revision=13411
Miguel de Icaza [Tue, 8 Apr 2003 23:00:32 +0000 (23:00 -0000)]
2003-03-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* expression.cs: save/restore context when resolving an unchecked
expression.
svn path=/trunk/mcs/; revision=13410
Miguel de Icaza [Tue, 8 Apr 2003 23:00:28 +0000 (23:00 -0000)]
2003-03-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* expression.cs: save/restore context when resolving an unchecked
expression.
svn path=/trunk/mcs/; revision=13409
Miguel de Icaza [Tue, 8 Apr 2003 23:00:19 +0000 (23:00 -0000)]
2003-03-05 Miguel de Icaza <miguel@ximian.com>
* cfold.cs: Catch division by zero in modulus operator during
constant folding.
svn path=/trunk/mcs/; revision=13408
Miguel de Icaza [Tue, 8 Apr 2003 23:00:15 +0000 (23:00 -0000)]
2003-03-03 Miguel de Icaza <miguel@ximian.com>
* interface.cs (Interface.DefineMembers): Avoid defining members
twice.
svn path=/trunk/mcs/; revision=13407
Miguel de Icaza [Tue, 8 Apr 2003 23:00:10 +0000 (23:00 -0000)]
2003-02-27 Miguel de Icaza <miguel@ximian.com>
* driver.cs: handle the +/- options for -noconfig
svn path=/trunk/mcs/; revision=13406
Miguel de Icaza [Tue, 8 Apr 2003 23:00:05 +0000 (23:00 -0000)]
2003-02-27 Miguel de Icaza <miguel@ximian.com>
* statement.cs (Unchecked.Resolve): Also track the state in the Resolve phase.
svn path=/trunk/mcs/; revision=13405
Miguel de Icaza [Tue, 8 Apr 2003 23:00:01 +0000 (23:00 -0000)]
2003-02-27 Martin Baulig <martin@ximian.com>
* ecore.cs (Expression.MemberLookup): Don't create a
MethodGroupExpr for something which is not a method. Fixes #38291.
svn path=/trunk/mcs/; revision=13404
Miguel de Icaza [Tue, 8 Apr 2003 22:59:55 +0000 (22:59 -0000)]
2003-02-25 Miguel de Icaza <miguel@ximian.com>
* class.cs (MemberBase.CheckParameters): Also check that the type
is unmanaged if it is a pointer.
* expression.cs (SizeOf.Resolve): Add location information.
* statement.cs (Block.EmitMeta): Flag error (208) if a pointer to
a managed type is declared.
svn path=/trunk/mcs/; revision=13403
Miguel de Icaza [Tue, 8 Apr 2003 22:59:41 +0000 (22:59 -0000)]
2003-02-25 Miguel de Icaza <miguel@ximian.com>
* expression.cs (Invocation.VerifyArgumentsCompat): Check for the
parameter modifiers as well. Fixes bug 38606
svn path=/trunk/mcs/; revision=13402
Miguel de Icaza [Tue, 8 Apr 2003 22:59:33 +0000 (22:59 -0000)]
2003-02-25 Miguel de Icaza <miguel@ximian.com>
* class.cs: Very sad. Am backing out the speed up changes
introduced by the ArrayList -> Array in the TypeContainer, as they
were not actually that much faster, and introduced a bug (no error
reports on duplicated methods).
svn path=/trunk/mcs/; revision=13401
Miguel de Icaza [Tue, 8 Apr 2003 22:59:25 +0000 (22:59 -0000)]
Another change. Use target.Resolve instead of LValueResolve.
Although we are resolving for LValues, we will let the Assign code
take care of that (it will be called again from Resolve). This
basically allows code like this:
class X { X operator + (X x, object o) {} X this [int idx] { get; set; } }
class Y { void A (X x) { x [0] += o; }
The problem was that the indexer was trying to resolve for
set_Item (idx, object o) and never finding one. The real set_Item
was set_Item (idx, X). By delaying the process we get the right
semantics.
Fixes bug: 36505
svn path=/trunk/mcs/; revision=13400
Miguel de Icaza [Tue, 8 Apr 2003 22:59:20 +0000 (22:59 -0000)]
2003-02-25 Miguel de Icaza <miguel@ximian.com>
* assign.cs (CompoundAssign.DoLResolve): Resolve the original
source first, this will guarantee that we have a valid expression
before calling in lower levels functions that will require a
resolved object. Then use this original_source in the
target.ResolveLValue instead of the original source that was
passed to us.
svn path=/trunk/mcs/; revision=13399
Miguel de Icaza [Tue, 8 Apr 2003 22:59:16 +0000 (22:59 -0000)]
2003-02-23 Martin Baulig <martin@ximian.com>
* statement.cs (Block.Emit): Override this and set ec.CurrentBlock
while calling DoEmit ().
* codegen.cs (EmitContext.Mark): Don't mark locations in other
source files; if you use the #line directive inside a method, the
compiler stops emitting line numbers for the debugger until it
reaches the end of the method or another #line directive which
restores the original file.
svn path=/trunk/mcs/; revision=13398
Miguel de Icaza [Tue, 8 Apr 2003 22:59:12 +0000 (22:59 -0000)]
2003-02-23 Martin Baulig <martin@ximian.com>
* statement.cs (FlowBranching.UsageVector.MergeChildren): Fix bug #37708.
svn path=/trunk/mcs/; revision=13397
Miguel de Icaza [Tue, 8 Apr 2003 22:59:07 +0000 (22:59 -0000)]
2003-02-23 Martin Baulig <martin@ximian.com>
* statement.cs (Block.AddChildVariableNames): We need to call this
recursively, not just for our immediate children.
svn path=/trunk/mcs/; revision=13396
Miguel de Icaza [Tue, 8 Apr 2003 22:59:03 +0000 (22:59 -0000)]
2003-02-23 Martin Baulig <martin@ximian.com>
* class.cs (Event.Define): Always make the field private, like csc does.
* typemanager.cs (TypeManager.RealMemberLookup): Make events
actually work, fixes bug #37521.
svn path=/trunk/mcs/; revision=13395
Miguel de Icaza [Tue, 8 Apr 2003 22:58:55 +0000 (22:58 -0000)]
2003-02-23 Miguel de Icaza <miguel@ximian.com>
* delegate.cs: When creating the various temporary "Parameters"
classes, make sure that we call the ComputeAndDefineParameterTypes
on those new parameters (just like we do with the formal ones), to
allow them to be resolved in the context of the DeclSpace.
This fixes the bug that Dick observed in Bugzilla #38530.
svn path=/trunk/mcs/; revision=13394
Miguel de Icaza [Tue, 8 Apr 2003 22:58:50 +0000 (22:58 -0000)]
2003-02-22 Miguel de Icaza <miguel@ximian.com>
* expression.cs (ResolveMemberAccess): When resolving a constant,
do not attempt to pull a constant if the value was not able to
generate a valid constant.
* const.cs (LookupConstantValue): Do not report more errors than required.
svn path=/trunk/mcs/; revision=13393
Miguel de Icaza [Tue, 8 Apr 2003 22:58:42 +0000 (22:58 -0000)]
2003-02-19 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* expression.cs: fixes bug #38328.
svn path=/trunk/mcs/; revision=13392
Miguel de Icaza [Tue, 8 Apr 2003 22:58:33 +0000 (22:58 -0000)]
2003-02-18 Miguel de Icaza <miguel@ximian.com>
* class.cs: Changed all the various members that can be part of a
class from being an ArrayList to be an Array of the right type.
During the DefineType type_list, interface_list, delegate_list and
enum_list are turned into types, interfaces, delegates and enums
arrays.
And during the member population, indexer_list, event_list,
constant_list, field_list, instance_constructor_list, method_list,
operator_list and property_list are turned into their real arrays.
Although we could probably perform this operation earlier, for
good error reporting we need to keep the lists and remove the
lists for longer than required.
This optimization was triggered by Paolo profiling the compiler
speed on the output of `gen-sample-program.pl' perl script.
* decl.cs (DeclSpace.ResolveType): Set the ContainerType, so we do
not crash in methods like MemberLookupFailed that use this field.
This problem arises when the compiler fails to resolve a type
during interface type definition for example.
svn path=/trunk/mcs/; revision=13391
Miguel de Icaza [Tue, 8 Apr 2003 22:58:25 +0000 (22:58 -0000)]
2003-02-18 Miguel de Icaza <miguel@ximian.com>
* expression.cs (Indexers.GetIndexersForType): Interfaces do not
inherit from System.Object, so we have to stop at null, not only
when reaching System.Object.
svn path=/trunk/mcs/; revision=13390
Miguel de Icaza [Tue, 8 Apr 2003 22:58:16 +0000 (22:58 -0000)]
2003-02-17 Miguel de Icaza <miguel@ximian.com>
* expression.cs: (Indexers.GetIndexersForType): Martin's fix used
DeclaredOnly because the parent indexer might have had a different
name, but did not loop until the top of the hierarchy was reached.
The problem this one fixes is 35492: when a class implemented an
indexer from an interface, we were getting the interface method
(which was abstract) and we were flagging an error (can not invoke
abstract method).
This also keeps bug 33089 functioning, and test-148 functioning.
svn path=/trunk/mcs/; revision=13389
Miguel de Icaza [Tue, 8 Apr 2003 22:58:08 +0000 (22:58 -0000)]
2003-02-17 Miguel de Icaza <miguel@ximian.com>
* typemanager.cs (IsSpecialMethod): The correct way of figuring
out if a method is special is to see if it is declared in a
property or event, or whether it is one of the predefined operator
names. This should fix correctly #36804.
svn path=/trunk/mcs/; revision=13388
Miguel de Icaza [Tue, 8 Apr 2003 22:58:00 +0000 (22:58 -0000)]
2003-02-15 Miguel de Icaza <miguel@ximian.com>
The goal here is to remove the dependency on EmptyCast.Peel ().
Killing it completely.
The problem is that currently in a number of places where
constants are expected, we have to "probe" for an EmptyCast, and
Peel, which is not the correct thing to do, as this will be
repetitive and will likely lead to errors.
The idea is to remove any EmptyCasts that are used in casts that
can be reduced to constants, so we only have to cope with
constants.
This bug hunt was triggered by Bug 37363 and the desire to remove
the duplicate pattern where we were "peeling" emptycasts to check
whether they were constants. Now constants will always be
constants.
* ecore.cs: Use an enumconstant here instead of wrapping with
EmptyCast.
* expression.cs (Cast.TryReduce): Ah, the tricky EnumConstant was
throwing me off. By handling this we can get rid of a few hacks.
* statement.cs (Switch): Removed Peel() code.
svn path=/trunk/mcs/; revision=13387
Miguel de Icaza [Tue, 8 Apr 2003 22:57:52 +0000 (22:57 -0000)]
2003-02-14 Miguel de Icaza <miguel@ximian.com>
* class.cs: Location information for error 508
svn path=/trunk/mcs/; revision=13386
Miguel de Icaza [Tue, 8 Apr 2003 22:57:44 +0000 (22:57 -0000)]
2003-02-14 Miguel de Icaza <miguel@ximian.com>
* expression.cs (New.DoResolve): Add a guard against double
resolution of an expression.
The New DoResolve might be called twice when initializing field
expressions (see EmitFieldInitializers, the call to
GetInitializerExpression will perform a resolve on the expression,
and later the assign will trigger another resolution
This leads to bugs (#37014)
svn path=/trunk/mcs/; revision=13385
Miguel de Icaza [Tue, 8 Apr 2003 22:57:36 +0000 (22:57 -0000)]
2003-02-14 Miguel de Icaza <miguel@ximian.com>
* delegate.cs: The signature for EndInvoke should contain any ref
or out parameters as well. We were not doing this in the past.
svn path=/trunk/mcs/; revision=13384
Miguel de Icaza [Tue, 8 Apr 2003 22:57:32 +0000 (22:57 -0000)]
2003-02-14 Miguel de Icaza <miguel@ximian.com>
* class.cs (Field.Define): Do not overwrite the type definition
inside the `volatile' group. Turns out that volatile enumerations
were changing the type here to perform a validity test, which
broke conversions.
svn path=/trunk/mcs/; revision=13383
Miguel de Icaza [Tue, 8 Apr 2003 22:57:23 +0000 (22:57 -0000)]
2003-02-12 Miguel de Icaza <miguel@ximian.com>
* ecore.cs (FieldExpr.AddressOf): In the particular case of This
and structs, we do not want to load the instance variable
svn path=/trunk/mcs/; revision=13382
Miguel de Icaza [Tue, 8 Apr 2003 22:57:19 +0000 (22:57 -0000)]
Oops. Wrongg ChangeLog entry
svn path=/trunk/mcs/; revision=13381
Miguel de Icaza [Tue, 8 Apr 2003 22:57:15 +0000 (22:57 -0000)]
2003-02-12 Zoltan Varga <vargaz@freemail.hu>
* attribute.cs (ApplyAttributes): apply all MethodImplAttributes, not
just InternalCall.
svn path=/trunk/mcs/; revision=13380
Miguel de Icaza [Tue, 8 Apr 2003 22:57:11 +0000 (22:57 -0000)]
2003-02-09 Martin Baulig <martin@ximian.com>
* 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.
svn path=/trunk/mcs/; revision=13379
Miguel de Icaza [Tue, 8 Apr 2003 22:57:03 +0000 (22:57 -0000)]
2003-02-09 Martin Baulig <martin@ximian.com>
* symbolwriter.cs: New file. This is a wrapper around
ISymbolWriter with a cleaner API. We'll dynamically Invoke()
methods here in near future.
svn path=/trunk/mcs/; revision=13378
Miguel de Icaza [Tue, 8 Apr 2003 22:56:53 +0000 (22:56 -0000)]
2003-02-09 Martin Baulig <martin@ximian.com>
* codegen.cs (EmitContext.Mark): Just pass the arguments to
ILGenerator.MarkSequencePoint() which are actually used by the
symbol writer.
svn path=/trunk/mcs/; revision=13377
Miguel de Icaza [Tue, 8 Apr 2003 22:56:49 +0000 (22:56 -0000)]
2003-02-09 Martin Baulig <martin@ximian.com>
* 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.
svn path=/trunk/mcs/; revision=13376
Miguel de Icaza [Tue, 8 Apr 2003 22:56:44 +0000 (22:56 -0000)]
Hmm, no, this was wrong.
svn path=/trunk/mcs/; revision=13375
Miguel de Icaza [Tue, 8 Apr 2003 22:56:40 +0000 (22:56 -0000)]
2003-02-09 Martin Baulig <martin@ximian.com>
* driver.cs (Driver.SetupDefaultDefines): Define `__MonoRuntime__'
if we're using mono's corlib.
svn path=/trunk/mcs/; revision=13374
Miguel de Icaza [Tue, 8 Apr 2003 22:56:35 +0000 (22:56 -0000)]
2003-02-09 Martin Baulig <martin@ximian.com>
* cs-tokenizer.cs (Tokenizer.PreProcessLine): Also reset the
filename on `#line default'.
svn path=/trunk/mcs/; revision=13373
Miguel de Icaza [Tue, 8 Apr 2003 22:56:31 +0000 (22:56 -0000)]
Sat Feb 8 17:03:16 CET 2003 Paolo Molaro <lupus@ximian.com>
* statement.cs: don't clear the pinned var when the fixed statement
returns from the method (fixes bug#37752).
svn path=/trunk/mcs/; revision=13372
Miguel de Icaza [Tue, 8 Apr 2003 22:56:27 +0000 (22:56 -0000)]
Sat Feb 8 12:58:06 CET 2003 Paolo Molaro <lupus@ximian.com>
* typemanager.cs: fix from mathpup@mylinuxisp.com (Marcus Urban)
to IsValueType ().
svn path=/trunk/mcs/; revision=13371
Miguel de Icaza [Tue, 8 Apr 2003 22:56:23 +0000 (22:56 -0000)]
2003-02-07 Martin Baulig <martin@ximian.com>
* 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.
svn path=/trunk/mcs/; revision=13370
Miguel de Icaza [Tue, 8 Apr 2003 22:56:18 +0000 (22:56 -0000)]
2003-02-03 Miguel de Icaza <miguel@ximian.com>
* driver.cs: (AddAssemblyAndDeps, LoadAssembly): Enter the types
from referenced assemblies as well.
svn path=/trunk/mcs/; revision=13369
Miguel de Icaza [Tue, 8 Apr 2003 22:56:14 +0000 (22:56 -0000)]
2003-02-02 Martin Baulig <martin@ximian.com>
* class.cs (MethodData.Emit): Generate debugging info for external methods.
svn path=/trunk/mcs/; revision=13368
Miguel de Icaza [Tue, 8 Apr 2003 22:56:06 +0000 (22:56 -0000)]
2003-02-02 Martin Baulig <martin@ximian.com>
* 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.
svn path=/trunk/mcs/; revision=13367
Miguel de Icaza [Tue, 8 Apr 2003 22:55:47 +0000 (22:55 -0000)]
2003-01-30 Miguel de Icaza <miguel@ximian.com>
* class.cs: Handle error 549: do not allow virtual methods in
sealed classes.
svn path=/trunk/mcs/; revision=13366
Miguel de Icaza [Tue, 8 Apr 2003 22:55:38 +0000 (22:55 -0000)]
Check access levels when resolving types
svn path=/trunk/mcs/; revision=13365
Miguel de Icaza [Tue, 8 Apr 2003 22:55:34 +0000 (22:55 -0000)]
Add parameters and locals set in catch blocks that might return to set vector
svn path=/trunk/mcs/; revision=13364
Miguel de Icaza [Tue, 8 Apr 2003 22:55:30 +0000 (22:55 -0000)]
2003-01-29 Miguel de Icaza <miguel@ximian.com>
* 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.
svn path=/trunk/mcs/; revision=13363
Miguel de Icaza [Tue, 8 Apr 2003 22:55:18 +0000 (22:55 -0000)]
Tue Jan 28 17:30:57 CET 2003 Paolo Molaro <lupus@ximian.com>
* statement.cs: small memory and time optimization in FlowBranching.
svn path=/trunk/mcs/; revision=13362
Miguel de Icaza [Tue, 8 Apr 2003 22:55:14 +0000 (22:55 -0000)]
2003-01-28 Pedro Mart <yoros@wanadoo.es>
* 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
svn path=/trunk/mcs/; revision=13361
Miguel de Icaza [Tue, 8 Apr 2003 22:55:06 +0000 (22:55 -0000)]
Combine some if statements.
svn path=/trunk/mcs/; revision=13360
Miguel de Icaza [Tue, 8 Apr 2003 22:54:58 +0000 (22:54 -0000)]
2003-01-27 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* driver.cs: fixed bug #37187.
svn path=/trunk/mcs/; revision=13359
Miguel de Icaza [Tue, 8 Apr 2003 22:54:54 +0000 (22:54 -0000)]
2003-01-27 Pedro Martinez Juli� <yoros@wanadoo.es>
* 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.
svn path=/trunk/mcs/; revision=13358
Miguel de Icaza [Tue, 8 Apr 2003 22:54:46 +0000 (22:54 -0000)]
2003-01-23 Miguel de Icaza <miguel@ximian.com>
* 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.
svn path=/trunk/mcs/; revision=13357
Miguel de Icaza [Tue, 8 Apr 2003 22:54:38 +0000 (22:54 -0000)]
2003-01-22 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* driver.cs: use assembly.Location instead of Codebase (the latest
patch made mcs fail when using MS assemblies).
svn path=/trunk/mcs/; revision=13356
Miguel de Icaza [Tue, 8 Apr 2003 22:54:34 +0000 (22:54 -0000)]
2003-01-21 Tim Haynes <thaynes@openlinksw.com>
* driver.cs: use DirectorySeparatorChar instead of a hardcoded "/" to
get the path to *corlib.dll.
svn path=/trunk/mcs/; revision=13355
Miguel de Icaza [Tue, 8 Apr 2003 22:54:29 +0000 (22:54 -0000)]
delete garbage
svn path=/trunk/mcs/; revision=13354
Miguel de Icaza [Tue, 8 Apr 2003 22:54:25 +0000 (22:54 -0000)]
2003-01-21 Nick Drochak <ndrochak@gol.com>
* cs-tokenizer.cs:
* pending.cs:
* typemanager.cs: Remove compiler warnings
svn path=/trunk/mcs/; revision=13353
Miguel de Icaza [Tue, 8 Apr 2003 22:54:20 +0000 (22:54 -0000)]
~head -4 ChangeLog~
svn path=/trunk/mcs/; revision=13352
Miguel de Icaza [Tue, 8 Apr 2003 22:54:12 +0000 (22:54 -0000)]
2003-01-20 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* cs-tokenizer.cs: little fixes to line numbering when #line is used.
svn path=/trunk/mcs/; revision=13351
Miguel de Icaza [Tue, 8 Apr 2003 22:54:08 +0000 (22:54 -0000)]
2003-01-18 Zoltan Varga <vargaz@freemail.hu>
* class.cs (Constructor::Emit): Emit debugging info for constructors.
svn path=/trunk/mcs/; revision=13350
Miguel de Icaza [Tue, 8 Apr 2003 22:54:00 +0000 (22:54 -0000)]
2003-01-17 Miguel de Icaza <miguel@ximian.com>
* cs-parser.jay: Small fix: we were not comparing the constructor
name correctly. Thanks to Zoltan for the initial pointer.
svn path=/trunk/mcs/; revision=13349
Miguel de Icaza [Tue, 8 Apr 2003 22:53:55 +0000 (22:53 -0000)]
Set file name when specified with #line
svn path=/trunk/mcs/; revision=13348
Miguel de Icaza [Tue, 8 Apr 2003 22:53:51 +0000 (22:53 -0000)]
2003-01-15 Miguel de Icaza <miguel@ximian.com>
* 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.
svn path=/trunk/mcs/; revision=13347
Miguel de Icaza [Tue, 8 Apr 2003 22:53:47 +0000 (22:53 -0000)]
Tue Jan 14 10:36:49 CET 2003 Paolo Molaro <lupus@ximian.com>
* class.cs, rootcontext.cs: small changes to avoid unnecessary memory
allocations.
svn path=/trunk/mcs/; revision=13346
Miguel de Icaza [Tue, 8 Apr 2003 22:53:39 +0000 (22:53 -0000)]
Add cleanup call.
svn path=/trunk/mcs/; revision=13345
Miguel de Icaza [Tue, 8 Apr 2003 22:53:35 +0000 (22:53 -0000)]
2003-01-13 Duncan Mak <duncan@ximian.com>
* ilasm/parser/ScannerAdapter.cs: Implement the new cleanup method
in the tokenizer. This fixes the build.
* skeleton.cs (cleanpup): Rename to cleanup to make it look more consistent.
* cs-tokenizer.cs (Cleanup): Rename to 'cleanup' to make it more
consistent with other methods.
svn path=/trunk/mcs/; revision=13344
Miguel de Icaza [Tue, 8 Apr 2003 22:53:31 +0000 (22:53 -0000)]
Add Cleanup method, also fix #region error messages.
svn path=/trunk/mcs/; revision=13343
Miguel de Icaza [Tue, 8 Apr 2003 22:53:27 +0000 (22:53 -0000)]
Sun Jan 12 19:58:42 CET 2003 Paolo Molaro <lupus@ximian.com>
* attribute.cs: only set GuidAttr to true when we have a
GuidAttribute.
svn path=/trunk/mcs/; revision=13342
Miguel de Icaza [Tue, 8 Apr 2003 22:53:23 +0000 (22:53 -0000)]
2003-01-09 Gonzalo Paniagua Javier <gonzalo@ximian.com>
* ecore.cs:
* expression.cs:
* typemanager.cs: fixes to allow mcs compile corlib with the new
Type.IsSubclassOf fix.
svn path=/trunk/mcs/; revision=13341
Miguel de Icaza [Tue, 8 Apr 2003 22:53:15 +0000 (22:53 -0000)]
2003-01-08 Miguel de Icaza <miguel@ximian.com>
* expression.cs (LocalVariableReference.DoResolve): Classify a
constant as a value, not as a variable. Also, set the type for
the variable.
svn path=/trunk/mcs/; revision=13340
Miguel de Icaza [Tue, 8 Apr 2003 22:53:07 +0000 (22:53 -0000)]
2003-01-08 Miguel de Icaza <miguel@ximian.com>
* 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.
svn path=/trunk/mcs/; revision=13339
Miguel de Icaza [Tue, 8 Apr 2003 22:53:03 +0000 (22:53 -0000)]
2003-01-08 Miguel de Icaza <miguel@ximian.com>
* statement.cs: First populate the pinned variables, then emit the
statement, then clear the variables. Before I was emitting the
code once for each fixed piece.
svn path=/trunk/mcs/; revision=13338
Miguel de Icaza [Tue, 8 Apr 2003 22:52:59 +0000 (22:52 -0000)]
2003-01-08 Martin Baulig <martin@ximian.com>
* statement.cs (FlowBranching.MergeChild): A break in a
SWITCH_SECTION does not leave a loop. Fixes #36155.
svn path=/trunk/mcs/; revision=13337
Miguel de Icaza [Tue, 8 Apr 2003 22:52:55 +0000 (22:52 -0000)]
2003-01-08 Martin Baulig <martin@ximian.com>
* statement.cs (FlowBranching.CheckOutParameters): `struct_params'
lives in the same number space than `param_map'. Fixes #36154.
svn path=/trunk/mcs/; revision=13336
Miguel de Icaza [Tue, 8 Apr 2003 22:52:49 +0000 (22:52 -0000)]
2003-01-07 Miguel de Icaza <miguel@ximian.com>
* 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).
svn path=/trunk/mcs/; revision=13335
Miguel de Icaza [Tue, 8 Apr 2003 22:52:45 +0000 (22:52 -0000)]
2003-01-07 Miguel de Icaza <miguel@ximian.com>
* statement.cs (Goto.Resolve): Set `Returns' to ALWAYS.
(GotoDefault.Resolve): Set `Returns' to ALWAYS.
(GotoCase.Resolve): Set `Returns' to ALWAYS. Fixes the test-49 problem on windows
svn path=/trunk/mcs/; revision=13334
Miguel de Icaza [Tue, 8 Apr 2003 22:52:41 +0000 (22:52 -0000)]
Tue Jan 7 18:32:24 CET 2003 Paolo Molaro <lupus@ximian.com>
* enum.cs: create the enum static fields using the enum type.
svn path=/trunk/mcs/; revision=13333
Miguel de Icaza [Tue, 8 Apr 2003 22:52:37 +0000 (22:52 -0000)]
Tue Jan 7 18:23:44 CET 2003 Paolo Molaro <lupus@ximian.com>
* 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).
svn path=/trunk/mcs/; revision=13332
Miguel de Icaza [Tue, 8 Apr 2003 22:52:29 +0000 (22:52 -0000)]
Add REGION flag to #region directives, and add checks to make sure that regions are being poped correctly
svn path=/trunk/mcs/; revision=13331
Miguel de Icaza [Tue, 8 Apr 2003 22:52:25 +0000 (22:52 -0000)]
2002-12-29 Miguel de Icaza <miguel@ximian.com>
* 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.
svn path=/trunk/mcs/; revision=13330
Miguel de Icaza [Tue, 8 Apr 2003 22:52:21 +0000 (22:52 -0000)]
2002-12-28 Miguel de Icaza <miguel@ximian.com>
* class.cs (Method.Define): If we are an operator (because it
reuses our code), then set the SpecialName and HideBySig. #36128
svn path=/trunk/mcs/; revision=13329
Miguel de Icaza [Tue, 8 Apr 2003 22:52:12 +0000 (22:52 -0000)]
2002-12-22 Miguel de Icaza <miguel@ximian.com>
* expression.cs (Invocation.DoResolve): Do not allow methods with
SpecialName to be invoked.
svn path=/trunk/mcs/; revision=13328
Miguel de Icaza [Tue, 8 Apr 2003 22:52:09 +0000 (22:52 -0000)]
2002-12-22 Miguel de Icaza <miguel@ximian.com>
* expression.cs (Invocation.DoResolve): Do not allow methods with
SpecialName to be invoked.
svn path=/trunk/mcs/; revision=13327
Miguel de Icaza [Tue, 8 Apr 2003 22:52:01 +0000 (22:52 -0000)]
2002-12-21 Miguel de Icaza <miguel@ximian.com>
* cs-tokenizer.cs: Small fix to the parser: compute the ascii
number before adding it.
svn path=/trunk/mcs/; revision=13326