public override object VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration, object data) { if (!IsClassType(ClassType.Interface) && (propertyDeclaration.Modifier & Modifiers.Visibility) == 0) { propertyDeclaration.Modifier |= Modifiers.Private; } base.VisitPropertyDeclaration(propertyDeclaration, data); ToVBNetRenameConflictingVariablesVisitor.RenameConflicting(propertyDeclaration); if (!IsClassType(ClassType.Interface) && (propertyDeclaration.Modifier & Modifiers.Abstract) == 0) { if (propertyDeclaration.HasGetRegion && propertyDeclaration.HasSetRegion) { if (propertyDeclaration.GetRegion.Block.IsNull && propertyDeclaration.SetRegion.Block.IsNull) { // automatically implemented property string fieldName = "m_" + propertyDeclaration.Name; Modifiers fieldModifier = propertyDeclaration.Modifier & ~(Modifiers.Visibility) | Modifiers.Private; FieldDeclaration newField = new FieldDeclaration(null, propertyDeclaration.TypeReference, fieldModifier); newField.Fields.Add(new VariableDeclaration(fieldName)); InsertAfterSibling(propertyDeclaration, newField); propertyDeclaration.GetRegion.Block = new BlockStatement(); propertyDeclaration.GetRegion.Block.Return(ExpressionBuilder.Identifier(fieldName)); propertyDeclaration.SetRegion.Block = new BlockStatement(); propertyDeclaration.SetRegion.Block.Assign(ExpressionBuilder.Identifier(fieldName), ExpressionBuilder.Identifier("Value")); } } } return(null); }
public override object VisitPropertyDeclaration(PropertyDeclaration propertyDeclaration, object data) { if (!IsClassType(ClassType.Interface) && (propertyDeclaration.Modifier & Modifiers.Visibility) == 0) { propertyDeclaration.Modifier |= Modifiers.Private; } base.VisitPropertyDeclaration(propertyDeclaration, data); ToVBNetRenameConflictingVariablesVisitor.RenameConflicting(propertyDeclaration); return(null); }
public override object VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration, object data) { // make constructor private if visiblity is not set (unless constructor is static) if ((constructorDeclaration.Modifier & (Modifiers.Visibility | Modifiers.Static)) == 0) { constructorDeclaration.Modifier |= Modifiers.Private; } base.VisitConstructorDeclaration(constructorDeclaration, data); ToVBNetRenameConflictingVariablesVisitor.RenameConflicting(constructorDeclaration); return(null); }
public override object VisitMethodDeclaration(MethodDeclaration methodDeclaration, object data) { if (!IsClassType(ClassType.Interface) && (methodDeclaration.Modifier & Modifiers.Visibility) == 0) { methodDeclaration.Modifier |= Modifiers.Private; } base.VisitMethodDeclaration(methodDeclaration, data); const Modifiers externStatic = Modifiers.Static | Modifiers.Extern; if ((methodDeclaration.Modifier & externStatic) == externStatic && methodDeclaration.Body.IsNull) { foreach (AttributeSection sec in methodDeclaration.Attributes) { foreach (Attribute att in sec.Attributes) { if ("DllImport".Equals(att.Name, StringComparison.InvariantCultureIgnoreCase)) { if (ConvertPInvoke(methodDeclaration, att)) { sec.Attributes.Remove(att); break; } } } if (sec.Attributes.Count == 0) { methodDeclaration.Attributes.Remove(sec); break; } } } ToVBNetRenameConflictingVariablesVisitor.RenameConflicting(methodDeclaration); return(null); }