@@ -329,10 +329,8 @@ private IEnumerable<MethodDeclarationSyntax> DeclareFriendlyOverloads(MethodDefi
329
329
leadingStatements . Add (
330
330
LocalDeclarationStatement ( VariableDeclaration ( elementType )
331
331
. AddVariables ( VariableDeclarator ( localName . Identifier ) . WithInitializer (
332
- EqualsValueClause ( ConditionalExpression (
333
- MemberAccessExpression ( SyntaxKind . SimpleMemberAccessExpression , origName , IdentifierName ( "HasValue" ) ) ,
334
- MemberAccessExpression ( SyntaxKind . SimpleMemberAccessExpression , origName , IdentifierName ( "Value" ) ) ,
335
- DefaultExpression ( elementType ) ) ) ) ) ) ) ;
332
+ EqualsValueClause (
333
+ BinaryExpression ( SyntaxKind . CoalesceExpression , origName , DefaultExpression ( elementType ) ) ) ) ) ) ) ;
336
334
arguments [ param . SequenceNumber - 1 ] = Argument ( ConditionalExpression (
337
335
MemberAccessExpression ( SyntaxKind . SimpleMemberAccessExpression , origName , IdentifierName ( "HasValue" ) ) ,
338
336
PrefixUnaryExpression ( SyntaxKind . AddressOfExpression , localName ) ,
@@ -461,10 +459,8 @@ private IEnumerable<MethodDeclarationSyntax> DeclareFriendlyOverloads(MethodDefi
461
459
leadingStatements . Add (
462
460
LocalDeclarationStatement ( VariableDeclaration ( externParam . Type )
463
461
. AddVariables ( VariableDeclarator ( localName . Identifier ) . WithInitializer (
464
- EqualsValueClause ( ConditionalExpression (
465
- MemberAccessExpression ( SyntaxKind . SimpleMemberAccessExpression , origName , IdentifierName ( "HasValue" ) ) ,
466
- MemberAccessExpression ( SyntaxKind . SimpleMemberAccessExpression , origName , IdentifierName ( "Value" ) ) ,
467
- DefaultExpression ( externParam . Type ) ) ) ) ) ) ) ;
462
+ EqualsValueClause (
463
+ BinaryExpression ( SyntaxKind . CoalesceExpression , origName , DefaultExpression ( externParam . Type ) ) ) ) ) ) ) ;
468
464
469
465
// We can't pass in null, but we can be fancy to achieve the same effect.
470
466
// Unsafe.NullRef<TParamType>() or Unsafe.AsRef<TParamType>(null), depending on what's available.
0 commit comments