ICE
От: Ziaw Россия  
Дата: 18.05.10 10:36
Оценка:
using Nemerle.Compiler;

module Test
{
  public Test() : void
  {
     def actions = [<[decl: public Test() : void {} ]>];

     def t = <[decl: module Test { 
        ..$(actions) // падает здесь
     }]> 
  }
}


Воркэраунд — добавлять методы итеративно через TypeBuilder.Define.
Не знаю как правильно оформлять баги на мантисе, поэтому кидаю сюда.

error: internal compiler error: got some unknown exception of type System.NullReferenceException: Object reference not set to an instance of an object.
   at Nemerle.Compiler.MainParser.ParseTypeDeclaration(Modifiers mods, Location startLocation)
   at Nemerle.Compiler.MainParser.ParseClassMember(String parentType, List`1 members)
   at Nemerle.Compiler.MainParser.parse_quotation()
   at Nemerle.Compiler.MainParser.parse_embedded_expr(TokenStoppers stop)
   at Nemerle.Compiler.MainParser.parse_expr(TokenStoppers stop)
   at Nemerle.Compiler.MainParser.parse_expr_sequence(TokenStoppers stop, list`1 result)
   at Nemerle.Compiler.MainParser.parse_expr_sequence(Token group, list`1 acc)
   at Nemerle.Compiler.MainParser.parse_expr_sequence(Token group)
   at Nemerle.Compiler.MainParser.ParseBlock(BracesGroup tok, list`1 parms)
   at Nemerle.Compiler.MainParser.parse_method(PFunHeader h, Modifiers modifiers)
   at Nemerle.Compiler.MainParser.ParseClassMember(String parentType, List`1 members)
   at Nemerle.Compiler.MainParser.ParseClassMembers[T](Token first, String parentType)
   at Nemerle.Compiler.MainParser.ParseTypeDeclaration(Modifiers mods, Location startLocation)
   at Nemerle.Compiler.MainParser.ParseTypeDeclaration(Token toks)
   at Nemerle.Compiler.MainParser.ParseTopLevel(LooseGroup tok, list`1 acc)
   at Nemerle.Compiler.MainParser.Parse(LexerBase lex)
   at Nemerle.Compiler.ManagerClass._N_static_proxy_23464.apply(LexerBase _N_sp_parm_23471)
   at Nemerle.Compiler.ManagerClass._N__N_lambda__24371__24414.apply(String _N__24413)
   at Nemerle.Collections.NList.RevMap[T,TOut](list`1 l, Function`2 convert)
   at Nemerle.Core.list`1.RevMap[TOut](Function`2 f)
   at Nemerle.Compiler.ManagerClass.Run()
   at Nemerle.CommandlineCompiler.MainClass.main_with_catching()
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.