@@ -6,6 +6,7 @@ namespace StyleCop.Analyzers.ReadabilityRules
66 using System ;
77 using System . Collections . Immutable ;
88 using System . Composition ;
9+ using System . Diagnostics ;
910 using System . Linq ;
1011 using System . Threading ;
1112 using System . Threading . Tasks ;
@@ -67,15 +68,37 @@ private static SyntaxNode GetReplacementNode(SyntaxNode node, SemanticModel sema
6768
6869 SyntaxNode replacement ;
6970
70- if ( IsType < CancellationToken > ( namedTypeSymbol ) )
71+ if ( IsType < CancellationToken > ( namedTypeSymbol )
72+ || namedTypeSymbol ? . SpecialType == SpecialType . System_IntPtr
73+ || namedTypeSymbol ? . SpecialType == SpecialType . System_UIntPtr
74+ || IsType < Guid > ( namedTypeSymbol ) )
7175 {
7276 if ( IsDefaultParameterValue ( newExpression ) )
7377 {
7478 replacement = SyntaxFactory . DefaultExpression ( newExpression . Type ) ;
7579 }
7680 else
7781 {
78- replacement = ConstructMemberAccessSyntax ( newExpression . Type , nameof ( CancellationToken . None ) ) ;
82+ string fieldName ;
83+ if ( IsType < CancellationToken > ( namedTypeSymbol ) )
84+ {
85+ fieldName = nameof ( CancellationToken . None ) ;
86+ }
87+ else if ( namedTypeSymbol . SpecialType == SpecialType . System_IntPtr )
88+ {
89+ fieldName = nameof ( IntPtr . Zero ) ;
90+ }
91+ else if ( namedTypeSymbol . SpecialType == SpecialType . System_UIntPtr )
92+ {
93+ fieldName = nameof ( IntPtr . Zero ) ;
94+ }
95+ else
96+ {
97+ Debug . Assert ( IsType < Guid > ( namedTypeSymbol ) , "Assertion failed: IsType<Guid>(namedTypeSymbol)" ) ;
98+ fieldName = nameof ( Guid . Empty ) ;
99+ }
100+
101+ replacement = ConstructMemberAccessSyntax ( newExpression . Type , fieldName ) ;
79102 }
80103 }
81104 else if ( IsEnumWithDefaultMember ( namedTypeSymbol , out string memberName ) )
0 commit comments