public override CodegenExpression Make( CodegenMethodScope parent, SAIFFInitializeSymbol symbols, CodegenClassScope classScope) { var method = parent.MakeChild(typeof(VariableTriggerWriteDesc), GetType(), classScope); method.Block .DeclareVar<VariableTriggerWriteDesc>("desc", NewInstance(typeof(VariableTriggerWriteDesc))) .SetProperty( Ref("desc"), "Type", EventTypeUtility.ResolveTypeCodegen(Type, symbols.GetAddInitSvc(method))) .SetProperty( Ref("desc"), "VariableName", Constant(VariableName)) .SetProperty( Ref("desc"), "Writer", EventTypeUtility.CodegenWriter( Type, evaluationType, getterType, Writer, method, GetType(), classScope)) .SetProperty( Ref("desc"), "Getter", EventTypeUtility.CodegenGetterWCoerce( getter, getterType, null, method, GetType(), classScope)) .MethodReturn(Ref("desc")); return LocalMethod(method); }