a575963da9
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
98 lines
3.1 KiB
Plaintext
98 lines
3.1 KiB
Plaintext
|
|
Mono MCS Errors.
|
|
|
|
Errors in the Mono C# compiler use the same codes as the
|
|
Microsoft C# compiler, the listing of the errors on it lives
|
|
in:
|
|
|
|
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cscomp/html/vctbsCompilerErrorsSC0001ThroughSC9999.asp
|
|
|
|
* Format
|
|
|
|
Error tests are stored in files with the format:
|
|
|
|
csXXXX.cs for the first error.
|
|
csXXXX-2.cs for the second way to trigger the error.
|
|
csXXXX-n.cs for subsequent ways of triggering the error.
|
|
|
|
The file should start with two inline commented lines.
|
|
The first one contains a little description of the error,
|
|
the second line declares the line where the error occurs.
|
|
|
|
You should not copy Microsoft's examples or documentation
|
|
text. You will need to write your own.
|
|
|
|
For example:
|
|
|
|
// CS0057: Inconsistent accessibility. Parameter type is less accessible than operator.
|
|
// Line: 10
|
|
|
|
** Note 1: If your error or warning message does not contain source line
|
|
location use syntax `// Line : 0'
|
|
|
|
** Note 2: Because in some special cases the error message can differ
|
|
between runtimes. The special syntax exists where you can specify message
|
|
for 2.0 runtime.
|
|
|
|
For example:
|
|
|
|
// CS0057: Uknown error
|
|
// GMCS0057: Uknown error 2.0
|
|
// Line: 10
|
|
|
|
|
|
There should not be more than one error per tests. Each test
|
|
should only contain one error.
|
|
|
|
Then you have to add the file to the SVN and commit it.
|
|
|
|
The next thing is to write a short text file with a little
|
|
description of what the error is and what it's necessary
|
|
to be done to solve it.
|
|
|
|
* Compiler options
|
|
|
|
If you need to run error test with some special option(s),
|
|
use following syntax in your error test file.
|
|
|
|
// cs0193.cs: * or -> operator can only be applied to pointer types.
|
|
// Line: 9
|
|
// Compiler options: -unsafe
|
|
|
|
* Dependencies
|
|
|
|
In case that your error test depends on the library or other C# file.
|
|
Create separate file with same name as your error test name except
|
|
first two letters which are uppercased. And then add this file to
|
|
Makefile.
|
|
|
|
* Known errors
|
|
|
|
Many of the errors in this test suite are not tested for by MCS. To cope
|
|
with this, we have a list of failures, so that someone running the test
|
|
can know if they have caused any regressions.
|
|
|
|
In this model there are two types of regressions:
|
|
* Incorrect error -- When mcs emits an error, but it is different
|
|
than the one CSC emits.
|
|
|
|
* No error -- When mcs incorrectly compiles an invalid file.
|
|
|
|
`Incorrect error' regressions should be listed in mcs-expect-wrong-error.
|
|
`No error' regressiions should be listed in mcs-expect-no-error.
|
|
|
|
If you fix a bug and thus remove a regression, be sure to remove the file
|
|
from the failures list!
|
|
|
|
* Errors not suported by Mono compiler
|
|
|
|
Here is a list of errors reported by csc 1.0, 1.1 and not supported by Mono.
|
|
Please add comment for every error.
|
|
|
|
CS0134: not supported by csc 2.0
|
|
CS0576: not supported by csc 2.0
|
|
CS0580: Included in error CS1501 (not supported by csc 2.0)
|
|
CS0581: Included in error CS0117 (not supported by csc 2.0)
|
|
CS0654: not supported by csc 2.0
|
|
|