2002-04-30 Miguel de Icaza <miguel@ximian.com>
authorMiguel de Icaza <miguel@gnome.org>
Tue, 30 Apr 2002 21:57:42 +0000 (21:57 -0000)
committerMiguel de Icaza <miguel@gnome.org>
Tue, 30 Apr 2002 21:57:42 +0000 (21:57 -0000)
commite19cb4f11df6c5d040cc99ed474b85dedfc6829c
tree221453510ff037c5709751863bece49474fe4d14
parent81326b5efbc906ee5349a7fd1f85b6d47f9355d3
2002-04-30  Miguel de Icaza  <miguel@ximian.com>

* assign.cs (CompoundAssign): A new class used as a "flag" that
the assignment actually is happening as part of a compound
assignment operator.

During compound assignment, a few new rules exist to enable things
like:

byte b |= 1 + 2

From the spec:

x op= y can be evaluated as x = (T) (x op y) (ie, an explicit cast
to the type of x) if y is implicitly convertible to the type of x,
and the operator is a builtin operator and the return type of the
operator is explicitly convertible to the type of x.

* rootcontext.cs: Reset warning level to 2.  4 catches various
"interesting" features in mcs, we must clean this up at some
point, but currently am trying to kill other bugs ;-)

svn path=/trunk/mcs/; revision=4179
mcs/mcs/ChangeLog
mcs/mcs/assign.cs
mcs/mcs/cs-parser.jay
mcs/mcs/expression.cs
mcs/mcs/rootcontext.cs
mcs/tests/makefile
mcs/tests/test-110.cs [new file with mode: 0755]