[nem-bug] [Nemerle 0000743]: Nemerle Ices on .ctor with default parameter when classname is same as already imported

feedback at nemerle.org feedback at nemerle.org
Wed Nov 29 15:53:01 CET 2006


A NOTE has been added to this issue.
======================================================================
<http://nemerle.org/bugs/view.php?id=743> 
======================================================================
Reported By:                Snaury
Assigned To:                
======================================================================
Project:                    Nemerle
Issue ID:                   743
Category:                   Compiler
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     new
======================================================================
Date Submitted:             08-18-2006 20:13 CEST
Last Modified:              11-29-2006 15:53 CET
======================================================================
Summary:                    Nemerle Ices on .ctor with default parameter when
classname is same as already imported
Description: 
// 1.n
using Nemerle.IO;
using Nemerle.Text;
using System;
using System.IO;

public class FileInfo
{
 public mutable sedname : string;
 public mutable sedpart : string;
 public mutable fullname : string;
 public mutable used : bool;

 public this(name : string, full : string = "none") {
   regexp match(name) {
     | @"(?i)(?<part>[a-z]+\.\d{2}\.\d{2}\.\d{1})\..*" =>
       sedpart = part;
       sedname = name;
       fullname = full;
       used = false;
     | _ =>
       throw Exception($"Unable to depict SED Name format: $(name)");
   }
 }
}

def fi = FileInfo("SomeBank.15.01.1.f.r");

// nbuild 1.n
ncc.exe -no-color -out:1.exe 1.n
1.n:26:10:26:18: debug: Internal compiler error, please report a bug to
bugs.nemerle.org. You can try modifying program near this location.
error: internal compiler error: assertion ``False'' failed in file
typing/Typer-OverloadSelection.n, line 127:
method FileInfo..ctor(name : string, full : string) : void==[string,
<null>] != method System.IO.FileInfo..ctor(fileName : string) :
void==[string]
   at Nemerle.Compiler.Typer.IsBetterOverload(OverloadPossibility o1,
OverloadPossibility o2)
   at
Nemerle.Compiler.Typer._N__N_method_lambda_67330.apply(OverloadPossibility
_N_67328, OverloadPossibility _N_67329)
   at Nemerle.Compiler.Typer._N__N_l67558_67599`1.apply('a _N_67598)
   at Nemerle.Collections.List.Exists['a](list`1 l, Function`2 f)
   at Nemerle.Compiler.Typer._N__N_l67552_67579`1.apply('a _N_67577,
list`1 _N_67578)
   at Nemerle.Collections.List.FoldLeft['a,'b](list`1 l, 'b acc,
Function`3 f)
   at Nemerle.Compiler.Typer.GetBestOverloads(list`1 parms)
   at Nemerle.Compiler.Typer.DelayedTyping.ResolveOverload(list`1
overloads, list`1 parms, TyVar expected)
   at Nemerle.Compiler.Typer.DelayedTyping.DoResolve()
   at Nemerle.Compiler.Typer.DelayedTyping.Resolve()
   at Nemerle.Compiler.Typer.TypeCall(PExpr fnc, list`1 parms, TyVar
expected, Boolean is_property)
   at Nemerle.Compiler.Typer.DoType(PExpr expression, TyVar expected,
Boolean is_toplevel_in_seq)
   at Nemerle.Compiler.Typer.TypeExpr(PExpr e, TyVar expected, Boolean
is_toplevel_in_seq)
   at Nemerle.Compiler.Typer.TypeLocalDefinition(Boolean is_mutable, Name
name, PExpr val)
   at Nemerle.Compiler.Typer.DoType(PExpr expression, TyVar expected,
Boolean is_toplevel_in_seq)
   at Nemerle.Compiler.Typer.TypeExpr(PExpr e, TyVar expected, Boolean
is_toplevel_in_seq)
   at Nemerle.Compiler.Typer.DoType(PExpr expression, TyVar expected,
Boolean is_toplevel_in_seq)
   at Nemerle.Compiler.Typer.TypeExpr(PExpr e, TyVar expected, Boolean
is_toplevel_in_seq)
   at Nemerle.Compiler.Typer.RunTyper()
   at Nemerle.Compiler.Typer..ctor(MethodBuilder m)
   at Nemerle.Compiler.MethodBuilder.RunBodyTyper()
   at Nemerle.Compiler.MethodBuilder.Compile()
   at Nemerle.Compiler.TypeBuilder.EmitImplementation()
   at
Nemerle.Compiler.TypesManager._N_emit_impl_25320.apply_void(TypeBuilder
_N_25319)
   at
Nemerle.Compiler.TypesManager._N_maybe_f_25771.apply_void(TypeBuilder
_N_25770)
   at Nemerle.Collections.List.Iter['a](list`1 l, FunctionVoid`1 f)
   at Nemerle.Core.list`1.Iter(FunctionVoid`1 f)
   at Nemerle.Compiler.TypesManager.Iter(list`1 builders, FunctionVoid`1
f)
   at Nemerle.Compiler.TypesManager.compile_all_tyinfos(Boolean
aux_phase)
   at Nemerle.Compiler.TypesManager._N__N_l24898_24989.apply_void()
   at Nemerle.Compiler.Solver.Enqueue(FunctionVoid action)
   at Nemerle.Compiler.TypesManager.EmitDecls()
   at Nemerle.Compiler.ManagerClass.Run()
   at Nemerle.CommandlineCompiler.MainClass.main_with_catching()

error: child process exited abnormally
... while compiling 1.n
======================================================================

----------------------------------------------------------------------
 malekith - 11-29-06 15:53 
----------------------------------------------------------------------
Simpler example:

public class A
{
  public this (_ : string) { }
  public this (_ : string, _ = "a") { }
}

_ = A("s");


Working on it...

Issue History
Date Modified  Username       Field                    Change              
======================================================================
08-18-06 20:13 Snaury         New Issue                                    
08-18-06 21:47 Snaury         Severity                 crash => major      
08-18-06 21:47 Snaury         Description Updated                          
11-29-06 15:53 malekith       Note Added: 0001533                          
======================================================================




More information about the bugs mailing list