Re: Макрос добавить родителя в класс на базе типа поля
От: CodingUnit Россия  
Дата: 01.11.13 22:48
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Пытаюсь сделать простой макрос, который вычислит тип поля и добавит родителя в класс.

_NN>Но что-то не работает, выдает NullReferenceException в недрах компилятора.
_NN>Может я не правильно делаю ?



_NN> def c = typeBuilder.Ast :> TopDeclaration.Class;


_NN> def typedVariable = typer.TypeExpr(variable);

_NN> when (!typedVariable.ty.IsFree)
_NN> Message.Error(variable.Location, "expected expression with inferred type");

_NN> c.t_extends ::= PExpr.TypedType(typedVariable.Type.Fix());

_NN> }

_NN>}


Че то ты здесь намудрил, пытаешься добавить на этапе BeforeInheritance а задействуешь типизацию, немудрено NRE получить, обычно на этой фазе добавляют с помощью метода AddImplementedInterface, через обычный PExpr:


typeBuilder.AddImplementedInterface(<[ BaseType[TType] ]>);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.