public DeclaredSymbolInfo( string name, string nameSuffix, string containerDisplayName, string fullyQualifiedContainerName, DeclaredSymbolInfoKind kind, Accessibility accessibility, TextSpan span, ImmutableArray <string> inheritanceNames, int parameterCount = 0, int typeParameterCount = 0) : this() { Name = name; NameSuffix = nameSuffix; ContainerDisplayName = containerDisplayName; FullyQualifiedContainerName = fullyQualifiedContainerName; Span = span; InheritanceNames = inheritanceNames; const uint MaxFlagValue = 0b1111; Contract.ThrowIfTrue((uint)accessibility > MaxFlagValue); Contract.ThrowIfTrue((uint)kind > MaxFlagValue); parameterCount = Math.Min(parameterCount, (byte)MaxFlagValue); typeParameterCount = Math.Min(typeParameterCount, (byte)MaxFlagValue); _flags = (uint)kind | ((uint)accessibility << 4) | ((uint)parameterCount << 8) | ((uint)typeParameterCount << 12); }
private static Glyph GetGlyph(DeclaredSymbolInfoKind kind, Accessibility accessibility) { // Glyphs are stored in this order: // ClassPublic, // ClassProtected, // ClassPrivate, // ClassInternal, var rawGlyph = GetPublicGlyph(kind); switch (accessibility) { case Accessibility.Private: rawGlyph += (Glyph.ClassPrivate - Glyph.ClassPublic); break; case Accessibility.Internal: rawGlyph += (Glyph.ClassInternal - Glyph.ClassPublic); break; case Accessibility.Protected: case Accessibility.ProtectedOrInternal: case Accessibility.ProtectedAndInternal: rawGlyph += (Glyph.ClassProtected - Glyph.ClassPublic); break; } return(rawGlyph); }
public DeclaredSymbolInfo( StringTable stringTable, string name, string nameSuffix, string containerDisplayName, string fullyQualifiedContainerName, DeclaredSymbolInfoKind kind, Accessibility accessibility, TextSpan span, ImmutableArray <string> inheritanceNames, bool isNestedType = false, int parameterCount = 0, int typeParameterCount = 0) { Name = Intern(stringTable, name); NameSuffix = Intern(stringTable, nameSuffix); ContainerDisplayName = Intern(stringTable, containerDisplayName); FullyQualifiedContainerName = Intern(stringTable, fullyQualifiedContainerName); Span = span; InheritanceNames = inheritanceNames; const uint MaxFlagValue = 0b1111; Contract.ThrowIfTrue((uint)accessibility > MaxFlagValue); Contract.ThrowIfTrue((uint)kind > MaxFlagValue); parameterCount = Math.Min(parameterCount, (byte)MaxFlagValue); typeParameterCount = Math.Min(typeParameterCount, (byte)MaxFlagValue); _flags = (uint)kind | ((uint)accessibility << 4) | ((uint)parameterCount << 8) | ((uint)typeParameterCount << 12) | ((isNestedType ? 1u : 0u) << 16); }
public DeclaredSymbolInfo(string name, string container, DeclaredSymbolInfoKind kind, TextSpan span, ushort parameterCount = 0, ushort typeParameterCount = 0) : this() { Name = name; Container = container; Kind = kind; Span = span; ParameterCount = parameterCount; TypeParameterCount = typeParameterCount; }
public DeclaredSymbolInfo(string name, string containerDisplayName, string fullyQualifiedContainerName, DeclaredSymbolInfoKind kind, TextSpan span, ushort parameterCount = 0, ushort typeParameterCount = 0) : this() { Name = name; ContainerDisplayName = containerDisplayName; FullyQualifiedContainerName = fullyQualifiedContainerName; Kind = kind; Span = span; ParameterCount = parameterCount; TypeParameterCount = typeParameterCount; }
public DeclaredSymbolInfo(SyntaxNode node, string name, string fullyQualifiedContainerName, DeclaredSymbolInfoKind kind, TextSpan span, ushort parameterCount = 0, ushort typeParameterCount = 0) : this() { this.FilePath = node.SyntaxTree.FilePath; Name = name; // ContainerDisplayName = string.Intern (containerDisplayName); FullyQualifiedContainerName = fullyQualifiedContainerName; Kind = kind; Span = span; ParameterCount = parameterCount; TypeParameterCount = typeParameterCount; }
public static DeclaredSymbolInfo Create( StringTable stringTable, string name, string nameSuffix, string containerDisplayName, string fullyQualifiedContainerName, bool isPartial, DeclaredSymbolInfoKind kind, Accessibility accessibility, TextSpan span, ImmutableArray <string> inheritanceNames, bool isNestedType = false, int parameterCount = 0, int typeParameterCount = 0) { // Max value that we can store depending on how many bits we have to store that particular value in. const uint Max5BitValue = 0b11111; const uint Max4BitValue = 0b1111; Contract.ThrowIfTrue((uint)accessibility > Max4BitValue); Contract.ThrowIfTrue((uint)kind > Max5BitValue); parameterCount = Math.Min(parameterCount, (byte)Max4BitValue); typeParameterCount = Math.Min(typeParameterCount, (byte)Max4BitValue); var flags = (uint)kind | ((uint)accessibility << 5) | ((uint)parameterCount << 9) | ((uint)typeParameterCount << 13) | ((isNestedType ? 1u : 0u) << 17) | ((isPartial ? 1u : 0u) << 18); #pragma warning disable CS0618 // Type or member is obsolete return(new DeclaredSymbolInfo( Intern(stringTable, name), Intern(stringTable, nameSuffix), Intern(stringTable, containerDisplayName), Intern(stringTable, fullyQualifiedContainerName), span, inheritanceNames, flags)); #pragma warning restore CS0618 // Type or member is obsolete }
public DeclaredSymbolInfo( string name, string containerDisplayName, string fullyQualifiedContainerName, DeclaredSymbolInfoKind kind, TextSpan span, ImmutableArray <string> inheritanceNames, ushort parameterCount = 0, ushort typeParameterCount = 0) : this() { Name = name; ContainerDisplayName = containerDisplayName; FullyQualifiedContainerName = fullyQualifiedContainerName; Kind = kind; Span = span; ParameterCount = parameterCount; TypeParameterCount = typeParameterCount; InheritanceNames = inheritanceNames; }
public DeclaredSymbolInfo( string name, string containerDisplayName, string fullyQualifiedContainerName, DeclaredSymbolInfoKind kind, TextSpan span, ImmutableArray<string> inheritanceNames, ushort parameterCount = 0, ushort typeParameterCount = 0) : this() { Name = name; ContainerDisplayName = containerDisplayName; FullyQualifiedContainerName = fullyQualifiedContainerName; Kind = kind; Span = span; ParameterCount = parameterCount; TypeParameterCount = typeParameterCount; InheritanceNames = inheritanceNames; }
private static Glyph GetPublicGlyph(DeclaredSymbolInfoKind kind) { switch (kind) { case DeclaredSymbolInfoKind.Class: return(Glyph.ClassPublic); case DeclaredSymbolInfoKind.Constant: return(Glyph.ConstantPublic); case DeclaredSymbolInfoKind.Constructor: return(Glyph.MethodPublic); case DeclaredSymbolInfoKind.Delegate: return(Glyph.DelegatePublic); case DeclaredSymbolInfoKind.Enum: return(Glyph.EnumPublic); case DeclaredSymbolInfoKind.EnumMember: return(Glyph.EnumMemberPublic); case DeclaredSymbolInfoKind.Event: return(Glyph.EventPublic); case DeclaredSymbolInfoKind.ExtensionMethod: return(Glyph.ExtensionMethodPublic); case DeclaredSymbolInfoKind.Field: return(Glyph.FieldPublic); case DeclaredSymbolInfoKind.Indexer: return(Glyph.PropertyPublic); case DeclaredSymbolInfoKind.Interface: return(Glyph.InterfacePublic); case DeclaredSymbolInfoKind.Method: return(Glyph.MethodPublic); case DeclaredSymbolInfoKind.Module: return(Glyph.ModulePublic); case DeclaredSymbolInfoKind.Property: return(Glyph.PropertyPublic); case DeclaredSymbolInfoKind.Struct: return(Glyph.StructurePublic); default: return(Glyph.ClassPublic); } }
public bool Contains(DeclaredSymbolInfoKind item) { return((int)item < _lookupTable.Length && _lookupTable[(int)item]); }
public DeclaredSymbolInfo(SyntaxNode node, string name, string fullyQualifiedContainerName, DeclaredSymbolInfoKind kind, TextSpan span, ushort parameterCount = 0, ushort typeParameterCount = 0) : this() { this.FilePath = node.SyntaxTree.FilePath; Name = string.Intern (name); // ContainerDisplayName = string.Intern (containerDisplayName); FullyQualifiedContainerName = fullyQualifiedContainerName; Kind = kind; Span = span; ParameterCount = parameterCount; TypeParameterCount = typeParameterCount; }