Skip to content

Commit c1e8929

Browse files
committed
Fixed overenthousiastic use of Task.Start
1 parent aef8e7f commit c1e8929

File tree

2 files changed

+6
-18
lines changed

2 files changed

+6
-18
lines changed

Rubberduck.Parsing/VBA/ComponentParseTask.cs

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,8 @@ public ComponentParseTask(VBComponent vbComponent, VBAPreprocessor preprocessor,
3737
_rewriter = rewriter;
3838
_qualifiedName = new QualifiedModuleName(vbComponent);
3939
}
40-
41-
public Task ParseAsync(CancellationToken token)
42-
{
43-
return new Task(() => ParseInternal(token));
44-
}
45-
46-
private void ParseInternal(CancellationToken token)
40+
41+
public void Start(CancellationToken token)
4742
{
4843
try
4944
{
@@ -142,12 +137,7 @@ private IEnumerable<CommentNode> QualifyAndUnionComments(QualifiedModuleName qua
142137
var allCommentNodes = commentNodes.Union(remCommentNodes);
143138
return allCommentNodes;
144139
}
145-
146-
public void Parse()
147-
{
148-
ParseAsync(CancellationToken.None).Wait();
149-
}
150-
140+
151141
public class ParseCompletionArgs
152142
{
153143
public ITokenStream Tokens { get; internal set; }

Rubberduck.Parsing/VBA/RubberduckParserReimpl.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -120,12 +120,9 @@ public Task ParseAsync(VBComponent component, CancellationToken token, TokenStre
120120

121121
var task = new Task(() => ParseAsyncInternal(component, linkedTokenSource.Token, rewriter));
122122
_currentTasks.Add(component, Tuple.Create(task, linkedTokenSource));
123-
124123
task.ContinueWith(t => _currentTasks.Remove(component)); // default also executes on cancel
125124

126-
_state.SetModuleState(component, ParserState.Parsing);
127125
task.Start();
128-
129126
return task;
130127
}
131128

@@ -160,9 +157,8 @@ private void ParseAsyncInternal(VBComponent component, CancellationToken token,
160157
_state.AddTokenStream(component, e.Tokens);
161158
_state.SetModuleComments(component, e.Comments);
162159
};
163-
var task = parser.ParseAsync(token);
164160
_state.SetModuleState(component, ParserState.Parsing);
165-
task.Start();
161+
parser.Start(token);
166162
}
167163

168164
public void ParseComponent(VBComponent component, TokenStreamRewriter rewriter = null)
@@ -208,6 +204,8 @@ private void ResolveDeclarations(VBComponent component, IParseTree tree)
208204
var emptyStringLiteralListener = new EmptyStringLiteralListener();
209205
var argListWithOneByRefParamListener = new ArgListWithOneByRefParamListener();
210206

207+
// FIXME account for errors here
208+
211209
var walker = new ParseTreeWalker();
212210
walker.Walk(new CombinedParseTreeListener(new IParseTreeListener[]{
213211
obsoleteCallStatementListener,

0 commit comments

Comments
 (0)