[Mono-bugs] [Bug 535395] New: Mono compiler crash on two-level 'using' alias.
bugzilla_noreply at novell.com
bugzilla_noreply at novell.com
Fri Aug 28 18:44:10 EDT 2009
http://bugzilla.novell.com/show_bug.cgi?id=535395
Summary: Mono compiler crash on two-level 'using' alias.
Classification: Mono
Product: Mono: Compilers
Version: 2.4.x
Platform: x86-64
OS/Version: Ubuntu
Status: NEW
Severity: Normal
Priority: P5 - None
Component: C#
AssignedTo: mono-bugs at lists.ximian.com
ReportedBy: kannan at cakoose.com
QAContact: mono-bugs at lists.ximian.com
Found By: ---
User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.0.13)
Gecko/2009080315 Ubuntu/9.04 (jaunty) Firefox/3.0.13
Versions:
OS: Ubuntu 9.04 (Jaunty)
Mono: Monoxide package: mono-devel 2.4.2.3+dfsg-1~dhx1~jaunty1
CSC: Mono C# compiler version 2.4.2.3
-------------------------------------
Code that causes CSC to crash (BinaryWriters.cs):
using C = Cks.Runtime.Data;
using BigInteger = C.BigInteger; // <--- this seems to be the issue
namespace Cks.Runtime
{
public abstract class BinaryWriter<T>
{
public abstract void Write(T Value);
}
public class Nat : BinaryWriter<BigInteger>
{
public override void Write(BigInteger v) {}
}
}
namespace Cks.Runtime.Data
{
public class BigInteger {}
}
-------------------------------------
csc BinaryWriters.cs
Unhandled Exception: System.NullReferenceException: Object reference not set
to an instance of an object
at Mono.CSharp.SimpleName.ResolveAsTypeStep (IResolveContext ec, Boolean
silent) [0x00000]
at Mono.CSharp.MemberAccess.ResolveNamespaceOrType (IResolveContext rc,
Boolean silent) [0x00000]
at Mono.CSharp.MemberAccess.ResolveAsTypeStep (IResolveContext ec, Boolean
silent) [0x00000]
at Mono.CSharp.MemberAccess.ResolveNamespaceOrType (IResolveContext rc,
Boolean silent) [0x00000]
at Mono.CSharp.MemberAccess.ResolveAsTypeStep (IResolveContext ec, Boolean
silent) [0x00000]
at Mono.CSharp.NamespaceEntry+LocalUsingAliasEntry.Resolve
(IResolveContext rc) [0x00000]
at Mono.CSharp.NamespaceEntry.Lookup (Mono.CSharp.DeclSpace ds,
System.String name, Location loc, Boolean ignore_cs0104) [0x00000]
at Mono.CSharp.NamespaceEntry.LookupNamespaceOrType (Mono.CSharp.DeclSpace
ds, System.String name, Location loc, Boolean ignore_cs0104) [0x00000]
at Mono.CSharp.DeclSpace.LookupNamespaceOrType (System.String name,
Location loc, Boolean ignore_cs0104) [0x00000]
at Mono.CSharp.SimpleName.ResolveAsTypeStep (IResolveContext ec, Boolean
silent) [0x00000]
at Mono.CSharp.MemberAccess.ResolveNamespaceOrType (IResolveContext rc,
Boolean silent) [0x00000]
at Mono.CSharp.MemberAccess.ResolveAsTypeStep (IResolveContext ec, Boolean
silent) [0x00000]
at Mono.CSharp.NamespaceEntry+LocalUsingAliasEntry.Resolve
(IResolveContext rc) [0x00000]
at Mono.CSharp.NamespaceEntry.Lookup (Mono.CSharp.DeclSpace ds,
System.String name, Location loc, Boolean ignore_cs0104) [0x00000]
at Mono.CSharp.NamespaceEntry.LookupNamespaceOrType (Mono.CSharp.DeclSpace
ds, System.String name, Location loc, Boolean ignore_cs0104) [0x00000]
at Mono.CSharp.DeclSpace.LookupNamespaceOrType (System.String name,
Location loc, Boolean ignore_cs0104) [0x00000]
at Mono.CSharp.SimpleName.ResolveAsTypeStep (IResolveContext ec, Boolean
silent) [0x00000]
at Mono.CSharp.Expression.ResolveAsBaseTerminal (IResolveContext ec,
Boolean silent) [0x00000]
at Mono.CSharp.Expression.ResolveAsTypeTerminal (IResolveContext ec,
Boolean silent) [0x00000]
at Mono.CSharp.TypeArguments.Resolve (IResolveContext ec) [0x00000]
at Mono.CSharp.GenericTypeExpr.DoResolveAsTypeStep (IResolveContext ec)
[0x00000]
at Mono.CSharp.TypeExpr.ResolveAsTypeStep (IResolveContext ec, Boolean
silent) [0x00000]
at Mono.CSharp.SimpleName.ResolveAsTypeStep (IResolveContext ec, Boolean
silent) [0x00000]
at Mono.CSharp.Expression.ResolveAsBaseTerminal (IResolveContext ec,
Boolean silent) [0x00000]
at Mono.CSharp.TypeContainer.ResolveBaseTypes (Mono.CSharp.TypeExpr&
base_class) [0x00000]
at Mono.CSharp.Class.ResolveBaseTypes (Mono.CSharp.TypeExpr& base_class)
[0x00000]
at Mono.CSharp.TypeContainer.DefineBaseTypes () [0x00000]
at Mono.CSharp.TypeContainer.DefineType () [0x00000]
at Mono.CSharp.RootContext.ResolveTree () [0x00000]
at Mono.CSharp.Driver.Compile () [0x00000]
at Mono.CSharp.Driver.Main (System.String[] args) [0x00000]
-------------------------------------
Code that doesn't cause CSC to crash:
1. Remove "using BigInteger = C.BigInteger"
2. Replace the two references to "BigInteger" with "C.BigInteger" in the code.
using C = Cks.Runtime.Data;
namespace Cks.Runtime
{
public abstract class BinaryWriter<T>
{
public abstract void Write(T Value);
}
public class Nat : BinaryWriter<C.BigInteger>
{
public override void Write(C.BigInteger v) {}
}
}
namespace Cks.Runtime.Data
{
public class BigInteger {}
}
Reproducible: Always
--
Configure bugmail: http://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