Internal Compiler Error Nemerle 1.1.660
От: _d_m_  
Дата: 08.04.12 07:09
Оценка:
Как дальше жить?
Путем отрезания кусков кода было локализовано до вот такого маленького куска:
using Nemerle;
using Nemerle.Collections;
using Nemerle.Text;
using Nemerle.Utility;

using System;
using System.Collections.Generic;
using System.Linq;
using System.Data.SqlClient;

namespace Asd
{
    public class ClassA
    {
        protected static КэшКоманд : Dictionary[string, SqlCommand] = Dictionary(8);
    }

    public abstract class ClassB[TypeT] : ClassA
    {
        private static ПолучитьКомВыборкиЭлем(_именаПолейКлюча : array[string]) : SqlCommand
        {
            mutable команда;
            unless( КэшКоманд.TryGetValue("asd", out команда) ) {
                команда = SqlCommand();
            }
            команда;
        }
    }
}


C:\Program Files (x86)\Nemerle\Net-4.0\Nemerle.MSBuild.targets(219,9): error : internal compiler error: got ArgumentException (Заданное поле должно быть объявлено в определении базового типа.
Имя параметра: field)
в System.Reflection.Emit.TypeBuilder.GetField(Type type, FieldInfo field)
в Nemerle.Compiler.ILEmitter.FrameworkGetField(Type t, FieldInfo m)
в Nemerle.Compiler.ILEmitter.GetFieldInfo(Type _from_type, IField meth)
в Nemerle.Compiler.ILEmitter.emit(TExpr expr)
в Nemerle.Compiler.ILEmitter.emit_and_convert_to_address(TExpr base_object)
в Nemerle.Compiler.ILEmitter.emit(TExpr expr)
в Nemerle.Compiler.ILEmitter.emit_debug_info(DebugInfo di)
в Nemerle.Compiler.ILEmitter.emit(TExpr expr)
в Nemerle.Compiler.ILEmitter.emit_exprs_push(LocalBuilder[] local_variables, list`1 exprs)
в Nemerle.Compiler.ILEmitter._N_emit_branch_72080(_N_closure_71914 _N_emit_cp_72079, TExpr expr, Label else_label, Location debug_loc)
в Nemerle.Compiler.ILEmitter.emit(TExpr expr)
в Nemerle.Compiler.ILEmitter.emit(TExpr expr)
в Nemerle.Compiler.ILEmitter.emit_debug_info(DebugInfo di)
в Nemerle.Compiler.ILEmitter.emit(TExpr expr)
в Nemerle.Compiler.ILEmitter.emit(TExpr expr)
в Nemerle.Compiler.ILEmitter.emit(TExpr expr)
в Nemerle.Compiler.ILEmitter.emit_debug_info(DebugInfo di)
в Nemerle.Compiler.ILEmitter.emit(TExpr expr)
в Nemerle.Compiler.ILEmitter.emit(TExpr expr)
в Nemerle.Compiler.ILEmitter.Run()
в Nemerle.Compiler.MethodBuilder._N__N_lambda__67615__67722.apply_void()
в Nemerle.Compiler.TypeBuilder.BeforeFinalizeType()
в Nemerle.Compiler.TypeBuilder.EmitImplementation()
в Nemerle.Compiler.TypesManager._N_emit_impl__60297.apply_void(TypeBuilder ti)
в Nemerle.Compiler.TypesManager._N_maybe_f__60540.apply_void(TypeBuilder ti)
в Nemerle.Collections.NList.Iter[T](list`1 l, FunctionVoid`1 f)
в Nemerle.Compiler.TypesManager.Iter(list`1 builders, FunctionVoid`1 f)
в Nemerle.Compiler.TypesManager.compile_all_tyinfos(Boolean aux_phase)
в Nemerle.Compiler.TypesManager._N__N_lambda__59721__59824.apply_void()
в Nemerle.Compiler.Solver.Enqueue(FunctionVoid action)
в Nemerle.Compiler.ManagerClass.Run()
в Nemerle.CommandlineCompiler.MainClass.main_with_catching()

... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re: Internal Compiler Error Nemerle 1.1.660
От: _d_m_  
Дата: 08.04.12 07:12
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>
...
___>    public class ClassB[TypeT] : ClassA
___>    {
...
___>    }
___>}
___>


abstract можно тоже убрать, ошибка та же.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Re: Internal Compiler Error Nemerle 1.1.660
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 08.04.12 08:02
Оценка: 4 (1)
Так компилируется:
            unless( ClassA.КэшКоманд.TryGetValue("asd", out команда) ) {
Ce n'est que pour vous dire ce que je vous dis.
Re[2]: Internal Compiler Error Nemerle 1.1.660
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.04.12 21:52
Оценка:
Здравствуйте, Don Reba, Вы писали:

DR>Так компилируется:

DR>
DR>            unless( ClassA.КэшКоманд.TryGetValue("asd", out команда) ) {
DR>


Похоже баг.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Internal Compiler Error Nemerle 1.1.660
От: Don Reba Канада https://stackoverflow.com/users/49329/don-reba
Дата: 10.04.12 04:34
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Похоже баг.


А бывают и штатные айсы?
Ce n'est que pour vous dire ce que je vous dis.
Re[4]: Internal Compiler Error Nemerle 1.1.660
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.04.12 07:31
Оценка:
Здравствуйте, Don Reba, Вы писали:

VD>>Похоже баг.


DR>А бывают и штатные айсы?


Да, если он вызван макросом.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Internal Compiler Error Nemerle 1.1.660
От: _d_m_  
Дата: 10.04.12 07:33
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, Don Reba, Вы писали:


DR>>Так компилируется:

DR>>
DR>>            unless( ClassA.КэшКоманд.TryGetValue("asd", out команда) ) {
DR>>


VD>Похоже баг.


Заиссуил сразу же.
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.