Skip to content

Commit 0f54623

Browse files
committed
Merge pull request #1758 from Hosch250/ParserIssues
Prevent resolve if state is parser error
2 parents 077f567 + 5c11a56 commit 0f54623

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed

Rubberduck.Parsing/VBA/RubberduckParser.cs

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,11 @@ private void ReparseRequested(object sender, ParseRequestEventArgs e)
7272
{
7373
ParseAsync(e.Component, CancellationToken.None).Wait();
7474

75-
Logger.Trace("Starting resolver task");
76-
Resolve(_central.Token);
75+
if (_state.Status != ParserState.Error)
76+
{
77+
Logger.Trace("Starting resolver task");
78+
Resolve(_central.Token);
79+
}
7780
});
7881
}
7982
}
@@ -110,8 +113,11 @@ public void Parse()
110113
var parseTasks = components.Select(vbComponent => ParseAsync(vbComponent, CancellationToken.None)).ToArray();
111114
Task.WaitAll(parseTasks);
112115

113-
Logger.Trace("Starting resolver task");
114-
Resolve(_central.Token); // Tests expect this to be synchronous
116+
if (_state.Status != ParserState.Error)
117+
{
118+
Logger.Trace("Starting resolver task");
119+
Resolve(_central.Token); // Tests expect this to be synchronous
120+
}
115121
}
116122

117123
/// <summary>
@@ -166,9 +172,12 @@ private void ParseAll()
166172

167173
var parseTasks = toParse.Select(vbComponent => ParseAsync(vbComponent, CancellationToken.None)).ToArray();
168174
Task.WaitAll(parseTasks);
169-
170-
Logger.Trace("Starting resolver task");
171-
Resolve(_central.Token);
175+
176+
if (_state.Status != ParserState.Error)
177+
{
178+
Logger.Trace("Starting resolver task");
179+
Resolve(_central.Token);
180+
}
172181
}
173182

174183
private void AddBuiltInDeclarations(IReadOnlyList<VBProject> projects)

0 commit comments

Comments
 (0)