[nem-bug] [Nemerle 0000877]: ICE if the same constraint appears
twice in inheritance tree
feedback at nemerle.org
feedback at nemerle.org
Tue Feb 6 15:43:41 CET 2007
A NOTE has been added to this issue.
======================================================================
<http://nemerle.org/bugs/view.php?id=877>
======================================================================
Reported By: nikov
Assigned To:
======================================================================
Project: Nemerle
Issue ID: 877
Category: Compiler
Reproducibility: always
Severity: crash
Priority: normal
Status: new
======================================================================
Date Submitted: 02-06-2007 09:51 CET
Last Modified: 02-06-2007 15:43 CET
======================================================================
Summary: ICE if the same constraint appears twice in
inheritance tree
Description:
module A {
Foo[T,S]() : void
where T : S, System.ICloneable
where S : System.ICloneable
{
}
}
internal compiler error: assertion failed in file ncc\typing\MType.n, line
959
at Nemerle.Compiler.MType._N__N_l79048_79079.apply(MType _N_79077,
Set`1 _N_79078) in C:\Nemerle\Compiler\ncc\typing\MType.n:line 959
at Nemerle.Collections.List.FoldLeft['a,'b](list`1 l, 'b acc,
Function`3 f) in C:\Nemerle\Compiler\lib\list.n:line 929
at Nemerle.Compiler.MType.Validate() in
C:\Nemerle\Compiler\ncc\typing\MType.n:line 953
at Nemerle.Compiler.StaticTyVar.set_Constraints(list`1 value) in
C:\Nemerle\Compiler\ncc\typing\StaticTyVar.n:line 65
at
Nemerle.Compiler.StaticTyVar.SetConstraints(GenericParameterAttributes
special, list`1 subtype) in
C:\Nemerle\Compiler\ncc\typing\StaticTyVar.n:line 140
at Nemerle.Compiler.TyVarEnv.AddTyparms(GlobalEnv env, Typarms tp,
TypeBuilder curtc, Boolean check_parms) in
C:\Nemerle\Compiler\ncc\typing\TyVarEnv.n:line 504
at Nemerle.Compiler.TypeBuilder.BindTyparms(TyVarEnv other_tenv,
Typarms tp) in C:\Nemerle\Compiler\ncc\hierarchy\TypeBuilder.n:line 1430
at Nemerle.Compiler.TypeBuilder.BindTyparms(Typarms tp) in
C:\Nemerle\Compiler\ncc\hierarchy\TypeBuilder.n:line 1424
at Nemerle.Compiler.MethodBuilder..ctor(TypeBuilder par, Function
functionAst, Boolean is_property) in
C:\Nemerle\Compiler\ncc\hierarchy\ClassMembers.n:line 894
at Nemerle.Compiler.MethodBuilder..ctor(TypeBuilder par, Function
functionAst) in C:\Nemerle\Compiler\ncc\hierarchy\ClassMembers.n:line 867
at
Nemerle.Compiler.CompilerComponentsFactory.CreateMethodBuilder(TypeBuilder
par, Function functionAst) in
C:\Nemerle\Compiler\ncc\misc\ComponentsFactory.n:line 33
at Nemerle.Compiler.TypeBuilder.bind_and_add_member(ClassMember
class_member) in C:\Nemerle\Compiler\ncc\hierarchy\TypeBuilder.n:line
1670
at Nemerle.Compiler.TypeBuilder.BindAndAddMember(ClassMember
class_member) in C:\Nemerle\Compiler\ncc\hierarchy\TypeBuilder.n:line
1436
at
Nemerle.Compiler.TypeBuilder._N__N_method_lambda_40194.apply_void(ClassMember
_N_40193) in C:\Nemerle\Compiler\ncc\hierarchy\TypeBuilder.n:line 1828
at Nemerle.Collections.List.Iter['a](list`1 l, FunctionVoid`1 f) in
C:\Nemerle\Compiler\lib\list.n:line 906
at Nemerle.Compiler.TypeBuilder.add_members() in
C:\Nemerle\Compiler\ncc\hierarchy\TypeBuilder.n:line 1828
at
Nemerle.Compiler.TypesManager._N__N_l36784_36871.apply_void(TypeBuilder
_N_36870) in C:\Nemerle\Compiler\ncc\hierarchy\TypesManager.n:line 317
at
Nemerle.Compiler.TypesManager._N_maybe_f_36624.apply_void(TypeBuilder
_N_36623) in C:\Nemerle\Compiler\ncc\hierarchy\TypesManager.n:line 225
at Nemerle.Collections.List.Iter['a](list`1 l, FunctionVoid`1 f) in
C:\Nemerle\Compiler\lib\list.n:line 906
at Nemerle.Core.list`1.Iter(FunctionVoid`1 f) in
C:\Nemerle\Compiler\lib\list.n:line 307
at Nemerle.Compiler.TypesManager.Iter(list`1 builders, FunctionVoid`1
f) in C:\Nemerle\Compiler\ncc\hierarchy\TypesManager.n:line 231
at Nemerle.Compiler.TypesManager.Iter(FunctionVoid`1 f) in
C:\Nemerle\Compiler\ncc\hierarchy\TypesManager.n:line 242
at Nemerle.Compiler.TypesManager.Run() in
C:\Nemerle\Compiler\ncc\hierarchy\TypesManager.n:line 317
at Nemerle.Compiler.ManagerClass.Run() in
C:\Nemerle\Compiler\ncc\passes.n:line 420
at Nemerle.CommandlineCompiler.MainClass.main_with_catching() in
C:\Nemerle\Compiler\ncc\main.n:line 86
======================================================================
----------------------------------------------------------------------
nikov - 02-06-07 09:54
----------------------------------------------------------------------
Also consider:
module A {
Foo[T,S]() : void
where T : S, System.IComparable[S]
{
}
}
----------------------------------------------------------------------
nikov - 02-06-07 15:43
----------------------------------------------------------------------
module A {
public Foo[T,S,U]() : void
where T : System.IComparable[S]
where S : System.IComparable[T]
where U : T, S
{}
}
Issue History
Date Modified Username Field Change
======================================================================
02-06-07 09:51 nikov New Issue
02-06-07 09:54 nikov Note Added: 0001703
02-06-07 15:43 nikov Note Added: 0001704
======================================================================
More information about the bugs
mailing list