public SSInterpretPropertyInfo AddProperty(string id, BasePropertyDeclarationSyntax property) { var propertyInfo = new SSInterpretPropertyInfo(this, Runner, id, property) { IsStatic = property.Modifiers.IsStatic(), DeclaringClass = this, AccessModifier = AccessModifierParser.Parse(property.Modifiers) }; Properties.Add(id, propertyInfo); return(propertyInfo); }
private void InitializeStaticProperty(SSInterpretPropertyInfo info) { if (info.HasBackingField == false) { return; } var backingField = info.BackingField; if (info.Initializer == null) { Globals.SetStaticField(Klass, backingField.Id, info.Type.GetDefault()); } else { var capturedKlass = Klass; AddLazyInitializer(() => { Globals.SetStaticField( capturedKlass, backingField.Id, RunExpression(info.Initializer.Value)); }); } }