diff --git a/src/Compilers/CSharp/Portable/Symbols/NamespaceOrTypeSymbol.cs b/src/Compilers/CSharp/Portable/Symbols/NamespaceOrTypeSymbol.cs index 1d75c467234dc02963f71f536b8d70ec0c058501..3d08619c06a4d111f1489dc60b537bc8f31481b5 100644 --- a/src/Compilers/CSharp/Portable/Symbols/NamespaceOrTypeSymbol.cs +++ b/src/Compilers/CSharp/Portable/Symbols/NamespaceOrTypeSymbol.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#nullable enable + using System.Collections.Generic; using System.Collections.Immutable; using System.Diagnostics; @@ -170,7 +172,7 @@ public virtual ImmutableArray GetTypeMembers(string name, int a /// Get a source type symbol for the given declaration syntax. /// /// Null if there is no matching declaration. - internal SourceNamedTypeSymbol GetSourceTypeMember(TypeDeclarationSyntax syntax) + internal SourceNamedTypeSymbol? GetSourceTypeMember(TypeDeclarationSyntax syntax) { return GetSourceTypeMember(syntax.Identifier.ValueText, syntax.Arity, syntax.Kind(), syntax); } @@ -179,7 +181,7 @@ internal SourceNamedTypeSymbol GetSourceTypeMember(TypeDeclarationSyntax syntax) /// Get a source type symbol for the given declaration syntax. /// /// Null if there is no matching declaration. - internal SourceNamedTypeSymbol GetSourceTypeMember(DelegateDeclarationSyntax syntax) + internal SourceNamedTypeSymbol? GetSourceTypeMember(DelegateDeclarationSyntax syntax) { return GetSourceTypeMember(syntax.Identifier.ValueText, syntax.Arity, syntax.Kind(), syntax); } @@ -189,7 +191,7 @@ internal SourceNamedTypeSymbol GetSourceTypeMember(DelegateDeclarationSyntax syn /// to those that are declared within the given syntax. /// /// Null if there is no matching declaration. - internal SourceNamedTypeSymbol GetSourceTypeMember( + internal SourceNamedTypeSymbol? GetSourceTypeMember( string name, int arity, SyntaxKind kind, @@ -207,7 +209,7 @@ internal SourceNamedTypeSymbol GetSourceTypeMember(DelegateDeclarationSyntax syn foreach (var member in GetTypeMembers(name, arity)) { var memberT = member as SourceNamedTypeSymbol; - if ((object)memberT != null && memberT.TypeKind == typeKind) + if ((object?)memberT != null && memberT.TypeKind == typeKind) { if (syntax != null) { @@ -251,7 +253,7 @@ internal virtual NamedTypeSymbol LookupMetadataType(ref MetadataTypeName emitted return new MissingMetadataTypeSymbol.Nested((NamedTypeSymbol)scope, ref emittedTypeName); } - NamedTypeSymbol namedType = null; + NamedTypeSymbol? namedType = null; ImmutableArray namespaceOrTypeMembers; bool isTopLevel = scope.IsNamespace; @@ -271,7 +273,7 @@ internal virtual NamedTypeSymbol LookupMetadataType(ref MetadataTypeName emitted { if (emittedTypeName.InferredArity == named.Arity && named.MangleName) { - if ((object)namedType != null) + if ((object?)namedType != null) { namedType = null; break; @@ -317,7 +319,7 @@ internal virtual NamedTypeSymbol LookupMetadataType(ref MetadataTypeName emitted { if (!named.MangleName && (forcedArity == -1 || forcedArity == named.Arity)) { - if ((object)namedType != null) + if ((object?)namedType != null) { namedType = null; break; @@ -328,7 +330,7 @@ internal virtual NamedTypeSymbol LookupMetadataType(ref MetadataTypeName emitted } Done: - if ((object)namedType == null) + if ((object?)namedType == null) { if (isTopLevel) { @@ -354,10 +356,10 @@ internal virtual NamedTypeSymbol LookupMetadataType(ref MetadataTypeName emitted /// /// "C.D" matches C.D, C{T}.D, C{S,T}.D{U}, etc. /// - internal IEnumerable GetNamespaceOrTypeByQualifiedName(IEnumerable qualifiedName) + internal IEnumerable? GetNamespaceOrTypeByQualifiedName(IEnumerable qualifiedName) { NamespaceOrTypeSymbol namespaceOrType = this; - IEnumerable symbols = null; + IEnumerable? symbols = null; foreach (string name in qualifiedName) { if (symbols != null) diff --git a/src/Compilers/CSharp/Portable/Symbols/PublicModel/NamespaceOrTypeSymbol.cs b/src/Compilers/CSharp/Portable/Symbols/PublicModel/NamespaceOrTypeSymbol.cs index 243e30f0686159acd7b2e759d8f52380dba39983..0c11af783b9f8f98410b47cfbfe20844215d0790 100644 --- a/src/Compilers/CSharp/Portable/Symbols/PublicModel/NamespaceOrTypeSymbol.cs +++ b/src/Compilers/CSharp/Portable/Symbols/PublicModel/NamespaceOrTypeSymbol.cs @@ -2,6 +2,8 @@ // The .NET Foundation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +#nullable enable + using System.Collections.Immutable; namespace Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel