Browse Source

Fixed definite assignment analysis bug.

pull/100/head
Daniel Grunwald 15 years ago
parent
commit
1331869851
  1. 7
      NRefactory/ICSharpCode.NRefactory/CSharp/Analysis/DefiniteAssignmentAnalysis.cs

7
NRefactory/ICSharpCode.NRefactory/CSharp/Analysis/DefiniteAssignmentAnalysis.cs

@ -559,11 +559,14 @@ namespace ICSharpCode.NRefactory.CSharp.Analysis
{ {
IdentifierExpression ident = left as IdentifierExpression; IdentifierExpression ident = left as IdentifierExpression;
if (ident != null && ident.Identifier == analysis.variableName) { if (ident != null && ident.Identifier == analysis.variableName) {
right.AcceptVisitor(this, initialStatus); // right==null is special case when handling 'out' expressions
if (right != null)
right.AcceptVisitor(this, initialStatus);
return DefiniteAssignmentStatus.DefinitelyAssigned; return DefiniteAssignmentStatus.DefinitelyAssigned;
} else { } else {
DefiniteAssignmentStatus status = left.AcceptVisitor(this, initialStatus); DefiniteAssignmentStatus status = left.AcceptVisitor(this, initialStatus);
status = right.AcceptVisitor(this, CleanSpecialValues(status)); if (right != null)
status = right.AcceptVisitor(this, CleanSpecialValues(status));
return CleanSpecialValues(status); return CleanSpecialValues(status);
} }
} }

Loading…
Cancel
Save