private static SyntaxTreeIndex?ReadFrom( StringTable stringTable, ObjectReader reader, Checksum?checksum ) { var literalInfo = LiteralInfo.TryReadFrom(reader); var identifierInfo = IdentifierInfo.TryReadFrom(reader); var contextInfo = ContextInfo.TryReadFrom(reader); var declarationInfo = DeclarationInfo.TryReadFrom(stringTable, reader); var extensionMethodInfo = ExtensionMethodInfo.TryReadFrom(reader); if ( literalInfo == null || identifierInfo == null || contextInfo == null || declarationInfo == null || extensionMethodInfo == null ) { return(null); } return(new SyntaxTreeIndex( checksum, literalInfo.Value, identifierInfo.Value, contextInfo.Value, declarationInfo.Value, extensionMethodInfo.Value )); }
private static bool SupportsCanFavorite(MemberInfo member, DeclarationInfo info) { if (IsMemberStatic(member)) { return(false); } Type memberType = GetMemberType(member); if (memberType.IsByRef || memberType.IsPointer) { return(false); } if (member.Name.Contains(".")) { return(false); } if (info.IsSet(DeclarationInfo.IncludeTypeInMemberName)) { return(false); } return(true); }
private SyntaxTreeIndex( VersionStamp version, IdentifierInfo identifierInfo, ContextInfo contextInfo, DeclarationInfo declarationInfo) { Version = version; _identifierInfo = identifierInfo; _contextInfo = contextInfo; _declarationInfo = declarationInfo; }
private SyntaxTreeIndex( VersionStamp version, IdentifierInfo identifierInfo, ContextInfo contextInfo, DeclarationInfo declarationInfo) : base(version) { _identifierInfo = identifierInfo; _contextInfo = contextInfo; _declarationInfo = declarationInfo; }
private TopLevelSyntaxTreeIndex( Checksum?checksum, DeclarationInfo declarationInfo, ExtensionMethodInfo extensionMethodInfo) : base(checksum) { _declarationInfo = declarationInfo; _extensionMethodInfo = extensionMethodInfo; _declaredSymbolInfoSet = new(() => new(this.DeclaredSymbolInfos)); }
private SyntaxTreeIndex( Checksum checksum, LiteralInfo literalInfo, IdentifierInfo identifierInfo, ContextInfo contextInfo, DeclarationInfo declarationInfo) { this.Checksum = checksum; _literalInfo = literalInfo; _identifierInfo = identifierInfo; _contextInfo = contextInfo; _declarationInfo = declarationInfo; }
private SyntaxTreeIndex( VersionStamp version, LiteralInfo literalInfo, IdentifierInfo identifierInfo, ContextInfo contextInfo, DeclarationInfo declarationInfo) { Version = version; _literalInfo = literalInfo; _identifierInfo = identifierInfo; _contextInfo = contextInfo; _declarationInfo = declarationInfo; }
private static SyntaxTreeIndex ReadFrom(ObjectReader reader, VersionStamp version) { var identifierInfo = IdentifierInfo.ReadFrom(reader); var contextInfo = ContextInfo.ReadFrom(reader); var declarationInfo = DeclarationInfo.ReadFrom(reader); if (identifierInfo == null || contextInfo == null || declarationInfo == null) { return(null); } return(new SyntaxTreeIndex( version, identifierInfo.Value, contextInfo.Value, declarationInfo.Value)); }
private static SyntaxTreeIndex ReadFrom( ObjectReader reader, Checksum checksum) { var literalInfo = LiteralInfo.TryReadFrom(reader); var identifierInfo = IdentifierInfo.TryReadFrom(reader); var contextInfo = ContextInfo.TryReadFrom(reader); var declarationInfo = DeclarationInfo.TryReadFrom(reader); if (literalInfo == null || identifierInfo == null || contextInfo == null || declarationInfo == null) { return(null); } return(new SyntaxTreeIndex( checksum, literalInfo.Value, identifierInfo.Value, contextInfo.Value, declarationInfo.Value)); }
private SyntaxTreeIndex( Checksum?checksum, LiteralInfo literalInfo, IdentifierInfo identifierInfo, ContextInfo contextInfo, DeclarationInfo declarationInfo, ExtensionMethodInfo extensionMethodInfo) { this.Checksum = checksum; _literalInfo = literalInfo; _identifierInfo = identifierInfo; _contextInfo = contextInfo; _declarationInfo = declarationInfo; _extensionMethodInfo = extensionMethodInfo; _declaredSymbolInfoSet = new(() => new(this.DeclaredSymbolInfos)); }
private static TopLevelSyntaxTreeIndex?ReadIndex( StringTable stringTable, ObjectReader reader, Checksum?checksum) { var declarationInfo = DeclarationInfo.TryReadFrom(stringTable, reader); var extensionMethodInfo = ExtensionMethodInfo.TryReadFrom(reader); if (declarationInfo == null || extensionMethodInfo == null) { return(null); } return(new TopLevelSyntaxTreeIndex( checksum, declarationInfo.Value, extensionMethodInfo.Value)); }
public MemberAndDeclarationInfo( MemberInfo member, DkmClrDebuggerBrowsableAttributeState?browsableState, DeclarationInfo info, int inheritanceLevel, bool canFavorite, bool isFavorite ) { Debug.Assert(member != null); _member = member; this.BrowsableState = browsableState; this.HideNonPublic = info.IsSet(DeclarationInfo.HideNonPublic); this.IncludeTypeInMemberName = info.IsSet(DeclarationInfo.IncludeTypeInMemberName); this.RequiresExplicitCast = info.IsSet(DeclarationInfo.RequiresExplicitCast); this.CanFavorite = canFavorite && SupportsCanFavorite(member, info); this.IsFavorite = isFavorite; _inheritanceLevel = inheritanceLevel; }
private static SyntaxTreeIndex?ReadFrom( StringTable stringTable, ObjectReader reader, Checksum?checksum) { var literalInfo = LiteralInfo.TryReadFrom(reader); var identifierInfo = IdentifierInfo.TryReadFrom(reader); var contextInfo = ContextInfo.TryReadFrom(reader); var declarationInfo = DeclarationInfo.TryReadFrom(stringTable, reader); var extensionMethodInfo = ExtensionMethodInfo.TryReadFrom(reader); if (literalInfo == null || identifierInfo == null || contextInfo == null || declarationInfo == null || extensionMethodInfo == null) { return(null); } var globalAliasInfoCount = reader.ReadInt32(); HashSet <(string alias, string name, int arity)>?globalAliasInfo = null; if (globalAliasInfoCount > 0) { globalAliasInfo = new HashSet <(string alias, string name, int arity)>(); for (var i = 0; i < globalAliasInfoCount; i++) { var alias = reader.ReadString(); var name = reader.ReadString(); var arity = reader.ReadInt32(); globalAliasInfo.Add((alias, name, arity)); } } return(new SyntaxTreeIndex( checksum, literalInfo.Value, identifierInfo.Value, contextInfo.Value, declarationInfo.Value, extensionMethodInfo.Value, globalAliasInfo)); }
internal static bool IsSet(this DeclarationInfo info, DeclarationInfo value) { return((info & value) == value); }