Bug 35980

Summary: CSharpCodeCompiler.CompileXYZ false positive error when warning is 'X hides inherited member'
Product: [Mono] Class Libraries Reporter: Kalyanov.Dmitry
Component: SystemAssignee: Bugzilla <bugzilla>
Status: RESOLVED FIXED    
Severity: normal CC: alkpli, mono-bugs+mono
Priority: ---    
Version: 4.0.0   
Target Milestone: Untriaged   
Hardware: PC   
OS: Linux   
Tags: Is this bug a regression?: ---
Last known good build:
Attachments: Code to reproduce the bug

Description Kalyanov.Dmitry 2015-11-18 05:07:57 UTC
Created attachment 13857 [details]
Code to reproduce the bug

The following code, when compiled via CSharpCodeCompiler, produces false error:

public class A
{
    public virtual void F() {}
}
    
public class B: A
{
    public virtual void F() {}
}

This code generates 1 warning and 1 error:
  
/tmp/fa35333/69a87839.0.cs(22,29) : warning CS0114: `NS.B.F()' hides inherited member `NS.A.F()'. To make the current member override that implementation, add the override keyword. Otherwise add the new keyword

(0,0) : error : /tmp/fa35333/69a87839.0.cs(16,29): (Location of the symbol related to previous warning)

Mono.CSharp.CSharpCodeCompiler.CreateErrorFromString incorrectly treats the additional line "(Location of the symbol related to previous warning)" in stderr output of mcs as an error since it doesn't match the ErrorRegexPattern regex.
Comment 1 Alexander Köplinger [MSFT] 2015-11-24 09:28:17 UTC
Fixed in master via https://github.com/mono/mono/pull/2248.