[nem-bug] [Nemerle 0000731]: Compiler ices when trying to use
OfficeXP interop assemblies
feedback at nemerle.org
feedback at nemerle.org
Mon Aug 7 14:00:11 CEST 2006
A NOTE has been added to this issue.
======================================================================
<http://nemerle.org/bugs/view.php?id=731>
======================================================================
Reported By: Snaury
Assigned To:
======================================================================
Project: Nemerle
Issue ID: 731
Category: Compiler
Reproducibility: always
Severity: major
Priority: normal
Status: new
======================================================================
Date Submitted: 08-07-2006 13:20 CEST
Last Modified: 08-07-2006 14:00 CEST
======================================================================
Summary: Compiler ices when trying to use OfficeXP interop
assemblies
Description:
Example code:
// REFERENCE: C:\Program Files\Microsoft.NET\Primary Interop
Assemblies\OfficeXP\Microsoft.Office.Interop.Excel.dll
using Microsoft.Office.Interop;
def xlApp = Excel.ApplicationClass();
xlApp.UserControl = true;
xlApp.Visible = true;
Produces this output:
ncc.exe -no-color {-r:C:\Program Files\Microsoft.NET\Primary Interop
Assemblies\OfficeXP\Microsoft.Office.Interop.Excel.dll}
-out:_bug_missing.exe _bug_missing.n
_bug_missing.n:4:13:4:35: 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 failed in file parsing/AST.n,
line 676:
cannot create literal from System.Reflection.Missing
at Nemerle.Compiler.Literal.FromObject(Object o) in
h:\Alex\mine\svn\Nemerle-current\ncc\parsing\AST.n:line 676
at
Nemerle.Compiler.LibraryReference.MethodInfo._N_mkparm_23301.apply(ParameterInfo
_N_23300) in
h:\Alex\mine\svn\Nemerle-current\ncc\external\LibrariesLoader.n:line 1886
at Nemerle.Collections.List.MapFromArray['a,'b]('a[] x, Function`2 f)
in h:\Alex\mine\svn\Nemerle-current\lib\list.n:line 875
at Nemerle.Compiler.LibraryReference.MethodInfo..ctor(Map`2 tenv,
LibraryReference lib, MethodBase h) in
h:\Alex\mine\svn\Nemerle-current\ncc\external\LibrariesLoader.n:line 1906
at Nemerle.Compiler.LibraryReference.MethodOfMethodInfo(Map`2 tenv,
MethodInfo meth) in
h:\Alex\mine\svn\Nemerle-current\ncc\external\LibrariesLoader.n:line 662
at Nemerle.Compiler.LibraryReference.NetProperty..ctor(Map`2 tenv,
LibraryReference lib, PropertyInfo h) in
h:\Alex\mine\svn\Nemerle-current\ncc\external\LibrariesLoader.n:line 1700
at
Nemerle.Compiler.LibraryReference.NetType.imember_of_memberinfo(MemberInfo
m) in h:\Alex\mine\svn\Nemerle-current\ncc\external\LibrariesLoader.n:line
1256
at Nemerle.Compiler.LibraryReference.NetType.collect_members() in
h:\Alex\mine\svn\Nemerle-current\ncc\external\LibrariesLoader.n:line 1284
at Nemerle.Compiler.LibraryReference.NetType.LookupMemberImpl(String
name) in
h:\Alex\mine\svn\Nemerle-current\ncc\external\LibrariesLoader.n:line 1326
at Nemerle.Compiler.TypeInfo.LookupMember(String name, Boolean
for_completion) in
h:\Alex\mine\svn\Nemerle-current\ncc\hierarchy\TypeInfo.n:line 560
at Nemerle.Compiler.Typer.TypeToConstructor(PExpr pt_from, TypeInfo t)
in h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 2042
at Nemerle.Compiler.Typer.InterpretGlobal(PExpr pt_from, IMember
symbol) in h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 2204
at Nemerle.Compiler.Typer.InterpretGlobals(PExpr pt_from, list`1
symbols, TyVar expected, Boolean dump_errors) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 2273
at Nemerle.Compiler.Typer.TypeNameFull(PExpr expr, TyVar expected,
Boolean for_completion) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 2551
at Nemerle.Compiler.Typer.TypeName(PExpr expr, TyVar expected) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 2574
at Nemerle.Compiler.Typer._N__N_l65320_65685.apply() in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1351
at Nemerle.Compiler.Typer.TryTyping(Function`1 fn) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 581
at Nemerle.Compiler.Typer.DoType(PExpr expression, TyVar expected,
Boolean is_toplevel_in_seq) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1351
at Nemerle.Compiler.Typer.TypeExpr(PExpr e, TyVar expected, Boolean
is_toplevel_in_seq) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1024
at Nemerle.Compiler.Typer.TypeExpr(PExpr e, TyVar expected) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1005
at Nemerle.Compiler.Typer.TypeCall(PExpr fnc, list`1 parms, TyVar
expected, Boolean is_property) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 2874
at Nemerle.Compiler.Typer.DoType(PExpr expression, TyVar expected,
Boolean is_toplevel_in_seq) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1461
at Nemerle.Compiler.Typer.TypeExpr(PExpr e, TyVar expected, Boolean
is_toplevel_in_seq) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1024
at Nemerle.Compiler.Typer.TypeExpr(PExpr e, TyVar expected) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1005
at Nemerle.Compiler.Typer.TypeLocalDefinition(Boolean is_mutable, Name
name, PExpr val) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1691
at Nemerle.Compiler.Typer.DoType(PExpr expression, TyVar expected,
Boolean is_toplevel_in_seq) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1101
at Nemerle.Compiler.Typer.TypeExpr(PExpr e, TyVar expected, Boolean
is_toplevel_in_seq) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1024
at Nemerle.Compiler.Typer.DoType(PExpr expression, TyVar expected,
Boolean is_toplevel_in_seq) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1569
at Nemerle.Compiler.Typer.TypeExpr(PExpr e, TyVar expected, Boolean
is_toplevel_in_seq) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1024
at Nemerle.Compiler.Typer.TypeExpr(PExpr e, TyVar expected) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 1005
at Nemerle.Compiler.Typer.TypeExpr(PExpr e) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 999
at Nemerle.Compiler.Typer.RunTyper() in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 310
at Nemerle.Compiler.Typer..ctor(MethodBuilder m) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Typer.n:line 131
at Nemerle.Compiler.MethodBuilder.RunBodyTyper() in
h:\Alex\mine\svn\Nemerle-current\ncc\hierarchy\ClassMembers.n:line 684
at Nemerle.Compiler.MethodBuilder.Compile() in
h:\Alex\mine\svn\Nemerle-current\ncc\generation\HierarchyEmitter.n:line
987
at Nemerle.Compiler.TypeBuilder.EmitImplementation() in
h:\Alex\mine\svn\Nemerle-current\ncc\generation\HierarchyEmitter.n:line
574
at
Nemerle.Compiler.TypesManager._N_emit_impl_25079.apply_void(TypeBuilder
_N_25078) in
h:\Alex\mine\svn\Nemerle-current\ncc\generation\HierarchyEmitter.n:line
321
at
Nemerle.Compiler.TypesManager._N_maybe_f_25526.apply_void(TypeBuilder
_N_25525) in
h:\Alex\mine\svn\Nemerle-current\ncc\hierarchy\TypesManager.n:line 217
at Nemerle.Collections.List.Iter['a](list`1 l, FunctionVoid`1 f) in
h:\Alex\mine\svn\Nemerle-current\lib\list.n:line 837
at Nemerle.Core.list`1.Iter(FunctionVoid`1 f) in
h:\Alex\mine\svn\Nemerle-current\lib\list.n:line 279
at Nemerle.Compiler.TypesManager.Iter(list`1 builders, FunctionVoid`1
f) in h:\Alex\mine\svn\Nemerle-current\ncc\hierarchy\TypesManager.n:line
223
at Nemerle.Compiler.TypesManager.Iter(FunctionVoid`1 f) in
h:\Alex\mine\svn\Nemerle-current\ncc\hierarchy\TypesManager.n:line 234
at Nemerle.Compiler.TypesManager.compile_all_tyinfos(Boolean aux_phase)
in h:\Alex\mine\svn\Nemerle-current\ncc\generation\HierarchyEmitter.n:line
345
at Nemerle.Compiler.TypesManager._N__N_l24657_24748.apply_void() in
h:\Alex\mine\svn\Nemerle-current\ncc\generation\HierarchyEmitter.n:line
210
at Nemerle.Compiler.Solver.Enqueue(FunctionVoid action) in
h:\Alex\mine\svn\Nemerle-current\ncc\typing\Solver.n:line 196
at Nemerle.Compiler.TypesManager.EmitDecls() in
h:\Alex\mine\svn\Nemerle-current\ncc\generation\HierarchyEmitter.n:line
209
at Nemerle.Compiler.ManagerClass.Run() in
h:\Alex\mine\svn\Nemerle-current\ncc\passes.n:line 416
at Nemerle.CommandlineCompiler.MainClass.main_with_catching() in
h:\Alex\mine\svn\Nemerle-current\ncc\main.n:line 86
error: child process exited abnormally
... while compiling _bug_missing.n
======================================================================
----------------------------------------------------------------------
Snaury - 08-07-06 14:00
----------------------------------------------------------------------
The easy workaround for this bug is to change code in
external/LibrariesLoader.n MethodInfo .ctor to filter Missing.Value as
well:
when (deflt != System.DBNull.Value && deflt !=
System.Reflection.Missing.Value)
fp.default_value = Some (Literal.FromObject (deflt));
I'm still not sure whether it is 100% correct though, because I suspect it
might be that compiler is asked to pass Missing.Value for optional
parameter in this way. I'm still determining what type and method has this
Missing.Value though...
Issue History
Date Modified Username Field Change
======================================================================
08-07-06 13:20 Snaury New Issue
08-07-06 14:00 Snaury Note Added: 0001401
======================================================================
More information about the bugs
mailing list