[Mono-bugs] [Bug 476358] New: Compiler crash in a Linq expression containing a join clause in wrong order
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Tue Feb 17 02:51:15 EST 2009
https://bugzilla.novell.com/show_bug.cgi?id=476358
Summary: Compiler crash in a Linq expression containing a join
clause in wrong order
Classification: Mono
Product: Mono: Compilers
Version: SVN
Platform: PC
OS/Version: Ubuntu
Status: NEW
Severity: Normal
Priority: P5 - None
Component: C#
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: catanzariti at yahoo.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
User-Agent: Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.6)
Gecko/2009020911 Ubuntu/8.10 (intrepid) Firefox/3.0.6
This is the code to compile :
using System.Collections.Generic;
using System.Linq;
namespace CompilerCrashTest
{
public class A
{
public int id { get; set; }
}
public class B
{
public int id { get; set; }
}
public class LinqJoin
{
public LinqJoin()
{
IList<A> aList = new List<A>();
IList<B> bList = new List<B>();
// OK
(from a in aList
join b in bList on a.id equals b.id
select a).ToList();
// Compiler crash
(from a in aList
join b in bList on b.id equals a.id
select a).ToList();
}
}
}
This is the error message :
Building: CompilerCrashTest (Debug)
Exécution de la compilation principale...
/opt/mono/bin/gmcs
"/out:/home/michael/dev/CompilerCrashTest/bin/Debug/CompilerCrashTest.exe"
"/r:System.Core.dll" /noconfig /nologo /warn:4 /debug:+ /debug:full /optimize-
/codepage:utf8 /define:"DEBUG" /t:exe
"/home/michael/dev/CompilerCrashTest/Main.cs"
"/home/michael/dev/CompilerCrashTest/AssemblyInfo.cs"
"/home/michael/dev/CompilerCrashTest/QueryCompiler.cs"
"/home/michael/dev/CompilerCrashTest/LinqJoin.cs"
Exception caught by the compiler while compiling:
Block that caused the problem begin at:
/home/michael/dev/CompilerCrashTest/LinqJoin.cs(30,43):
Block being compiled:
[/home/michael/dev/CompilerCrashTest/LinqJoin.cs(30,43):,/home/michael/dev/CompilerCrashTest/LinqJoin.cs(30,55):]
System.NullReferenceException: Object reference not set to an instance of an
object
Exception caught by the compiler while compiling:
Block that caused the problem begin at:
/home/michael/dev/CompilerCrashTest/LinqJoin.cs(18,24):
Block being compiled:
[/home/michael/dev/CompilerCrashTest/LinqJoin.cs(21,25):,/home/michael/dev/CompilerCrashTest/LinqJoin.cs(21,55):]
System.NullReferenceException: Object reference not set to an instance of an
object
Unhandled Exception: Mono.CSharp.InternalErrorException:
/home/michael/dev/CompilerCrashTest/LinqJoin.cs(18,24):
CompilerCrashTest.LinqJoin.LinqJoin() ---> System.NullReferenceException:
Object reference not set to an instance of an object
at Mono.CSharp.ToplevelParameterInfo.get_ParameterType () [0x00000]
at Mono.CSharp.ParameterReference.DoResolveBase (Mono.CSharp.EmitContext ec)
[0x00000]
at Mono.CSharp.ParameterReference.DoResolve (Mono.CSharp.EmitContext ec)
[0x00000]
at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags
flags) [0x00000]
at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
at Mono.CSharp.SimpleName.DoSimpleNameResolve (Mono.CSharp.EmitContext ec,
Mono.CSharp.Expression right_side, Boolean intermediate) [0x00000]
at Mono.CSharp.SimpleName.SimpleNameResolve (Mono.CSharp.EmitContext ec,
Mono.CSharp.Expression right_side, Boolean intermediate) [0x00000]
at Mono.CSharp.SimpleName.DoResolve (Mono.CSharp.EmitContext ec, Boolean
intermediate) [0x00000]
at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags
flags) [0x00000]
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.EmitContext ec,
Mono.CSharp.Expression right_side) [0x00000]
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.EmitContext ec) [0x00000]
at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags
flags) [0x00000]
at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
at Mono.CSharp.SimpleName.DoSimpleNameResolve (Mono.CSharp.EmitContext ec,
Mono.CSharp.Expression right_side, Boolean intermediate) [0x00000]
at Mono.CSharp.SimpleName.SimpleNameResolve (Mono.CSharp.EmitContext ec,
Mono.CSharp.Expression right_side, Boolean intermediate) [0x00000]
at Mono.CSharp.SimpleName.DoResolve (Mono.CSharp.EmitContext ec, Boolean
intermediate) [0x00000]
at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags
flags) [0x00000]
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.EmitContext ec,
Mono.CSharp.Expression right_side) [0x00000]
at Mono.CSharp.MemberAccess.DoResolve (Mono.CSharp.EmitContext ec) [0x00000]
at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec, ResolveFlags
flags) [0x00000]
at Mono.CSharp.Expression.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
at Mono.CSharp.Return.DoResolve (Mono.CSharp.EmitContext ec) [0x00000]
at Mono.CSharp.ContextualReturn.DoResolve (Mono.CSharp.EmitContext ec)
[0x00000]
at Mono.CSharp.ExitStatement.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
at Mono.CSharp.Block.Resolve (Mono.CSharp.EmitContext ec) [0x00000]
at Mono.CSharp.EmitContext.ResolveTopBlock (Mono.CSharp.EmitContext
anonymous_method_host, Mono.CSharp.ToplevelBlock block,
Mono.CSharp.ParametersCompiled ip, IMethodData md, System.Boolean& unreachable)
[0x00000]
--- End of inner exception stack trace ---
at Mono.CSharp.TypeContainer.EmitConstructors () [0x00000]
at Mono.CSharp.TypeContainer.EmitType () [0x00000]
at Mono.CSharp.RootContext.EmitCode () [0x00000]
at Mono.CSharp.Driver.Compile () [0x00000]
at Mono.CSharp.Driver.Main (System.String[] args) [0x00000]
Reproducible: Always
--
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.
More information about the mono-bugs
mailing list