Browse Source

Added cenecllationtoken work around.

Mono crashes on default cancellation token.
newNRvisualizers
Mike Krüger 14 years ago
parent
commit
bd4fb10522
  1. 7
      ICSharpCode.NRefactory/CSharp/Analysis/ControlFlow.cs
  2. 14
      ICSharpCode.NRefactory/CSharp/Analysis/DefiniteAssignmentAnalysis.cs
  3. 5
      ICSharpCode.NRefactory/CSharp/Resolver/CSharpResolver.cs

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

@ -143,7 +143,12 @@ namespace ICSharpCode.NRefactory.CSharp.Analysis @@ -143,7 +143,12 @@ namespace ICSharpCode.NRefactory.CSharp.Analysis
Dictionary<string, ControlFlowNode> labels;
List<ControlFlowNode> gotoStatements;
public IList<ControlFlowNode> BuildControlFlowGraph(Statement statement, ITypeResolveContext context, CancellationToken cancellationToken = default(CancellationToken))
public IList<ControlFlowNode> BuildControlFlowGraph(Statement statement, ITypeResolveContext context)
{
return BuildControlFlowGraph(statement, context, CancellationToken.None);
}
public IList<ControlFlowNode> BuildControlFlowGraph(Statement statement, ITypeResolveContext context, CancellationToken cancellationToken)
{
return BuildControlFlowGraph(statement, new ResolveVisitor(
new CSharpResolver(context, cancellationToken),

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

@ -79,12 +79,22 @@ namespace ICSharpCode.NRefactory.CSharp.Analysis @@ -79,12 +79,22 @@ namespace ICSharpCode.NRefactory.CSharp.Analysis
Queue<DefiniteAssignmentNode> nodesWithModifiedInput = new Queue<DefiniteAssignmentNode>();
public DefiniteAssignmentAnalysis(Statement rootStatement, CancellationToken cancellationToken = default(CancellationToken))
public DefiniteAssignmentAnalysis(Statement rootStatement)
: this(rootStatement, null, CancellationToken.None)
{
}
public DefiniteAssignmentAnalysis(Statement rootStatement, CancellationToken cancellationToken)
: this(rootStatement, null, cancellationToken)
{
}
public DefiniteAssignmentAnalysis(Statement rootStatement, ITypeResolveContext context, CancellationToken cancellationToken = default(CancellationToken))
public DefiniteAssignmentAnalysis(Statement rootStatement, ITypeResolveContext context)
: this(rootStatement, context, CancellationToken.None)
{
}
public DefiniteAssignmentAnalysis(Statement rootStatement, ITypeResolveContext context, CancellationToken cancellationToken)
: this(rootStatement, new ResolveVisitor(new CSharpResolver(context ?? MinimalResolveContext.Instance, cancellationToken),
null, ConstantModeResolveVisitorNavigator.Skip))
{

5
ICSharpCode.NRefactory/CSharp/Resolver/CSharpResolver.cs

@ -26,11 +26,8 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver @@ -26,11 +26,8 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
internal readonly CancellationToken cancellationToken;
#region Constructor
public CSharpResolver(ITypeResolveContext context)
public CSharpResolver(ITypeResolveContext context) : this (context, CancellationToken.None)
{
if (context == null)
throw new ArgumentNullException("context");
this.context = context;
}
public CSharpResolver(ITypeResolveContext context, CancellationToken cancellationToken)

Loading…
Cancel
Save