[Mono-bugs] [Bug 698598] New: Use of extern keyword without DllImport generates error CS0626

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Tue Jun 7 13:42:06 EDT 2011


https://bugzilla.novell.com/show_bug.cgi?id=698598

https://bugzilla.novell.com/show_bug.cgi?id=698598#c0


           Summary: Use of extern keyword without DllImport generates
                    error CS0626
    Classification: Mono
           Product: Mono: Compilers
           Version: unspecified
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: C#
        AssignedTo: msafar at novell.com
        ReportedBy: rodrigo.jordao at gmail.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: ---
           Blocker: ---


User-Agent:       Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1;
Trident/4.0; .NET CLR 1.1.4322; InfoPath.2; .NET CLR 2.0.50727; .NET CLR
3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729;
NET4.0C; .NET4.0E)

When I use the extern keyword in a method I get error CS0626. The compiler
forces the use of this attribute, which, when used, also forces the method to
be static.

The MS C# compiler produces a warning for the same issue (CS0626).

It's conceivable that the compiled code runs in a runtime environment that
provides different ways for an external method to be injected, that doesn't
rely on DllImport or on the method being static.

Reproducible: Always

Steps to Reproduce:
Step 1. Save this code in file extern.cs:

public class Example {
  public extern void M();
  public static void Main() {}
}

Step 2. Run the compiler on it:

gmcs extern.cs



Actual Results:  
The code generates this error and fails compilation:

extern.cs(2,22): error CS0626: `Example.M()' is marked as an external but has
no
 DllImport attribute. Consider adding a DllImport attribute to specify the
exter
nal implementation
Compilation failed: 1 error(s), 0 warnings


Expected Results:  
Compilation should be successful, and generate a warning instead of an error.

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.


More information about the mono-bugs mailing list