public static AST.TypeMemberModifiers ConvertVisibilityBack(ModifierEnum modifier) { AST.TypeMemberModifiers r = AST.TypeMemberModifiers.None; if ((modifier & ModifierEnum.Public) == ModifierEnum.Public) { r |= AST.TypeMemberModifiers.Public; } if ((modifier & ModifierEnum.Protected) == ModifierEnum.Protected) { r |= AST.TypeMemberModifiers.Protected; } if ((modifier & ModifierEnum.Internal) == ModifierEnum.Internal) { r |= AST.TypeMemberModifiers.Internal; } if ((modifier & ModifierEnum.Private) == ModifierEnum.Private) { r |= AST.TypeMemberModifiers.Private; } return(r); }
B.TypeMemberModifiers ConvertModifier(AttributedNode node, B.TypeMemberModifiers defaultVisibility) { Modifiers m = node.Modifier; B.TypeMemberModifiers r = B.TypeMemberModifiers.None; if ((m & Modifiers.Private) != 0) { r |= B.TypeMemberModifiers.Private; } if ((m & Modifiers.Internal) != 0) { r |= B.TypeMemberModifiers.Internal; } if ((m & Modifiers.Public) != 0) { r |= B.TypeMemberModifiers.Public; } if ((m & Modifiers.Protected) != 0) { r |= B.TypeMemberModifiers.Protected; } if (r == B.TypeMemberModifiers.None) { r = defaultVisibility; } if ((m & Modifiers.Abstract) != 0) { r |= B.TypeMemberModifiers.Abstract; } if ((m & Modifiers.Virtual) != 0) { r |= B.TypeMemberModifiers.Virtual; } if ((m & Modifiers.Sealed) != 0) { r |= B.TypeMemberModifiers.Final; } if ((m & Modifiers.Static) != 0) { r |= B.TypeMemberModifiers.Static; } else if (currentType != null && currentType.IsStatic) { if (!(node is TypeDeclaration)) { r |= B.TypeMemberModifiers.Static; } } if ((m & Modifiers.Override) != 0) { r |= B.TypeMemberModifiers.Override; } if ((m & Modifiers.ReadOnly) != 0 && !(node is PropertyDeclaration)) { r |= B.TypeMemberModifiers.Final; } if ((m & Modifiers.Const) != 0) { r |= B.TypeMemberModifiers.Final | B.TypeMemberModifiers.Static; } if ((m & Modifiers.New) != 0) { AddError(node, "shadowing is not supported"); } if ((m & Modifiers.Partial) != 0) { r |= B.TypeMemberModifiers.Partial; } if ((m & Modifiers.Extern) != 0) { // not necessary in Boo } if ((m & Modifiers.Volatile) != 0) { AddError(node, "Volatile modifier is not supported"); } if ((m & Modifiers.Unsafe) != 0) { AddError(node, "Unsafe modifier is not supported"); } if ((m & Modifiers.Overloads) != 0) { // not necessary in Boo } if ((m & Modifiers.WithEvents) != 0) { // not necessary in Boo } return(r); }
B.TypeMemberModifiers ConvertModifier(AttributedNode node, B.TypeMemberModifiers defaultVisibility) { Modifiers m = node.Modifier; B.TypeMemberModifiers r = B.TypeMemberModifiers.None; if ((m & Modifiers.Private) != 0) { r |= B.TypeMemberModifiers.Private; } if ((m & Modifiers.Internal) != 0) { r |= B.TypeMemberModifiers.Internal; } if ((m & Modifiers.Public) != 0) { r |= B.TypeMemberModifiers.Public; } if ((m & Modifiers.Protected) != 0) { r |= B.TypeMemberModifiers.Protected; } if (r == B.TypeMemberModifiers.None) { r = defaultVisibility; } if ((m & Modifiers.Abstract) != 0) { r |= B.TypeMemberModifiers.Abstract; } if ((m & Modifiers.Virtual) != 0) { r |= B.TypeMemberModifiers.Virtual; } if ((m & Modifiers.Sealed) != 0) { r |= B.TypeMemberModifiers.Final; } if ((m & Modifiers.Static) != 0) { r |= B.TypeMemberModifiers.Static; } else if (currentType != null && currentType.IsStatic) { if (!(node is TypeDeclaration)) { r |= B.TypeMemberModifiers.Static; } } if ((m & Modifiers.Override) != 0) { r |= B.TypeMemberModifiers.Override; } if ((m & Modifiers.ReadOnly) != 0 && !(node is PropertyDeclaration)) { r |= B.TypeMemberModifiers.Final; } if ((m & Modifiers.Const) != 0) { r |= B.TypeMemberModifiers.Final | B.TypeMemberModifiers.Static; } if ((m & Modifiers.New) != 0) { AddError(node, "shadowing is not supported"); } if ((m & Modifiers.Partial) != 0) { r |= B.TypeMemberModifiers.Partial; } if ((m & Modifiers.Extern) != 0) { // not necessary in Boo } if ((m & Modifiers.Volatile) != 0) { AddError(node, "Volatile modifier is not supported"); } if ((m & Modifiers.Unsafe) != 0) { AddError(node, "Unsafe modifier is not supported"); } if ((m & Modifiers.Overloads) != 0) { // not necessary in Boo } if ((m & Modifiers.WithEvents) != 0) { // not necessary in Boo } if ((m & Modifiers.Default) != 0) { ParametrizedNode parametrizedNode = node as ParametrizedNode; string name = null; if (parametrizedNode != null) { name = parametrizedNode.Name; } else { AddError(node, "Default modifier is not supported on this member."); } if (name != null && currentType != null) { currentType.Attributes.Add(MakeAttribute("System.Reflection.DefaultMember", new B.StringLiteralExpression(name))); } } return(r); }