@@ -83,8 +83,7 @@ protected override IEnumerable<IdentifierReference> ReferencesInModule(Qualified
83
83
84
84
protected override bool IsResultReference ( IdentifierReference reference , DeclarationFinder finder )
85
85
{
86
- return ! ( IsAssignmentOfNothing ( reference )
87
- || IsPotentiallyUsedViaJump ( reference , finder ) ) ;
86
+ return ! ( IsAssignmentOfNothing ( reference ) || IsPotentiallyUsedViaJump ( reference , finder ) ) ;
88
87
}
89
88
90
89
protected override string ResultDescription ( IdentifierReference reference )
@@ -115,8 +114,11 @@ private static IEnumerable<IdentifierReference> FindUnusedAssignmentReferences(D
115
114
? FindUnusedAssignmentNodes ( tree , localVariable , allAssignmentsAndReferences )
116
115
: allAssignmentsAndReferences . OfType < AssignmentNode > ( ) ;
117
116
118
- return unusedAssignmentNodes . Where ( n => ! IsDescendentOfNeverFlagNode ( n ) )
119
- . Select ( n => n . Reference ) ;
117
+ var results = unusedAssignmentNodes
118
+ . Where ( n => ! IsDescendentOfNeverFlagNode ( n ) )
119
+ . Select ( n => n . Reference ) ;
120
+
121
+ return results ;
120
122
}
121
123
122
124
private static IEnumerable < AssignmentNode > FindUnusedAssignmentNodes ( INode node , Declaration localVariable , IEnumerable < INode > allAssignmentsAndReferences )
@@ -136,7 +138,7 @@ private static IEnumerable<AssignmentNode> FindUnusedAssignmentNodes(INode node,
136
138
? assignmentExprNodes . TakeWhile ( n => n != assignmentExprNodesWithReference . LastOrDefault ( ) )
137
139
? . LastOrDefault ( )
138
140
? . Nodes ( new [ ] { typeof ( AssignmentNode ) } )
139
- : allAssignmentsAndReferences . TakeWhile ( n => n != refNode )
141
+ : allAssignmentsAndReferences . TakeWhile ( n => n != refNode && ! IsDescendentOfNeverFlagNode ( n ) )
140
142
. OfType < AssignmentNode > ( ) ;
141
143
142
144
if ( assignmentsPrecedingReference ? . Any ( ) ?? false )
@@ -148,7 +150,7 @@ private static IEnumerable<AssignmentNode> FindUnusedAssignmentNodes(INode node,
148
150
return allAssignmentsAndReferences . OfType < AssignmentNode > ( ) . Except ( usedAssignments ) ;
149
151
}
150
152
151
- private static bool IsDescendentOfNeverFlagNode ( AssignmentNode assignment )
153
+ private static bool IsDescendentOfNeverFlagNode ( INode assignment )
152
154
{
153
155
return assignment . TryGetAncestorNode < BranchNode > ( out _ )
154
156
|| assignment . TryGetAncestorNode < LoopNode > ( out _ ) ;
0 commit comments