11// Copyright (c) .NET Foundation. All rights reserved.
22// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33
4- #nullable disable
5-
64using System ;
75using System . Collections . Generic ;
86using System . Globalization ;
@@ -83,7 +81,7 @@ public static IReadOnlyList<PackageType> GetPackageTypes(XElement metadataNode,
8381
8482 // Get the optional package type version.
8583 var versionAttribute = node . Attribute ( XName . Get ( Version ) ) ;
86- Version version ;
84+ Version ? version ;
8785
8886 if ( versionAttribute != null )
8987 {
@@ -122,7 +120,12 @@ public static bool IsServiceable(XElement metadataNode)
122120 return false ;
123121 }
124122
125- var value = element . Value ?? element . Value . Trim ( ) ;
123+ if ( element . Value == null )
124+ {
125+ return false ;
126+ }
127+
128+ var value = element . Value . Trim ( ) ;
126129 return System . Xml . XmlConvert . ToBoolean ( value ) ;
127130 }
128131
@@ -143,9 +146,9 @@ internal static IEnumerable<FrameworkReferenceGroup> GetFrameworkReferenceGroups
143146 if ( useMetadataNamespace )
144147 {
145148 var frameworkReferencesNode = metadataNode
146- . Elements ( XName . Get ( FrameworkReferences , ns ) ) ;
149+ . Elements ( XName . Get ( FrameworkReferences , ns ! ) ) ;
147150 frameworkReferenceGroups = frameworkReferencesNode
148- . Elements ( XName . Get ( Group , ns ) ) ;
151+ . Elements ( XName . Get ( Group , ns ! ) ) ;
149152 }
150153 else
151154 {
@@ -159,10 +162,10 @@ internal static IEnumerable<FrameworkReferenceGroup> GetFrameworkReferenceGroups
159162 var groupFramework = GetAttributeValue ( frameworkRefGroup , TargetFramework ) ;
160163
161164 var frameworkReferences = useMetadataNamespace ?
162- frameworkRefGroup . Elements ( XName . Get ( FrameworkReference , ns ) ) :
165+ frameworkRefGroup . Elements ( XName . Get ( FrameworkReference , ns ! ) ) :
163166 frameworkRefGroup . Elements ( ) . Where ( x => x . Name . LocalName == FrameworkReference ) ;
164167
165- var framework = NuGetFramework . Parse ( groupFramework , frameworkProvider ) ;
168+ var framework = NuGetFramework . Parse ( groupFramework ! , frameworkProvider ) ;
166169 var frameworkRefs = GetFrameworkReferences ( frameworkReferences ) ;
167170
168171 yield return new FrameworkReferenceGroup ( framework , frameworkRefs . Select ( e => new FrameworkReference ( e ) ) ) ;
@@ -171,10 +174,10 @@ internal static IEnumerable<FrameworkReferenceGroup> GetFrameworkReferenceGroups
171174
172175 private static IEnumerable < string > GetFrameworkReferences ( IEnumerable < XElement > nodes )
173176 {
174- return new HashSet < string > ( nodes . Select ( e => GetAttributeValue ( e , Name ) ) , ComparisonUtility . FrameworkReferenceNameComparer ) ;
177+ return new HashSet < string > ( nodes . Select ( e => GetAttributeValue ( e , Name ) ! ) , ComparisonUtility . FrameworkReferenceNameComparer ) ;
175178 }
176179
177- private static string GetAttributeValue ( XElement element , string attributeName )
180+ private static string ? GetAttributeValue ( XElement element , string attributeName )
178181 {
179182 var attribute = element . Attribute ( XName . Get ( attributeName ) ) ;
180183 return attribute == null ? null : attribute . Value ;
0 commit comments