Bug 35674

Summary: Silent discarding of code on syntax error in anonymous delegate
Product: [Mono] Compilers Reporter: Dan Nilsson <raxptor>
Component: C#Assignee: Marek Safar <masafa>
Severity: normal CC: mono-bugs+mono
Priority: ---    
Version: unspecified   
Target Milestone: ---   
Hardware: Macintosh   
OS: Mac OS   
Tags: Is this bug a regression?: ---
Last known good build:

Description Dan Nilsson 2015-11-09 04:42:16 UTC
The following program can be compiled and run, even though the statement "n = o" is invalid. No code for the 'Call' call will be generated, instead silently discarded.

Steps to reproduce:

1. Compile the program
2. Run it

Observe that the program compiles and runs even though it has a syntax error and no code has been generated for the 'Call' function call.

Expected result:

A compiler error is generated.


class MainClass
	public delegate void Fn(MainClass o);

	public static void Call(Fn f)

	public static void Main (string[] args)
		Call (delegate (MainClass o) {
			n = o;
			MainClass n = new MainClass ();
Comment 1 Marek Safar 2015-11-10 06:00:08 UTC
Fixed in master