Bug 35674 - Silent discarding of code on syntax error in anonymous delegate
Summary: Silent discarding of code on syntax error in anonymous delegate
Status: RESOLVED FIXED
Alias: None
Product: Compilers
Classification: Mono
Component: C# (show other bugs)
Version: unspecified
Hardware: Macintosh Mac OS
: --- normal
Target Milestone: ---
Assignee: Marek Safar
URL:
Depends on:
Blocks:
 
Reported: 2015-11-09 04:42 UTC by Dan Nilsson
Modified: 2015-11-10 06:00 UTC (History)
1 user (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments

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)
	{
		System.Console.WriteLine("called");
		f(null);
	}

	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

Note You need to log in before you can comment on or make changes to this bug.