[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 09:54:22 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 09:54 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]
	{
	}
}

Issue History
Date Modified  Username       Field                    Change              
======================================================================
02-06-07 09:51 nikov          New Issue                                    
02-06-07 09:54 nikov          Note Added: 0001703                          
======================================================================




More information about the bugs mailing list