Skip to content

Commit 5eeba8e

Browse files
authored
Merge pull request #2481 from MDoerner/MoreTestsForSymbols
More tests for symbols and refactorings for CostumDeclarations
2 parents 56cc4be + b861e77 commit 5eeba8e

File tree

9 files changed

+362
-88
lines changed

9 files changed

+362
-88
lines changed

Rubberduck.Parsing/Symbols/AliasDeclarations.cs

Lines changed: 34 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -68,20 +68,21 @@ private IReadOnlyList<Declaration> AddAliasDeclarations()
6868

6969
private void UpdateAliasFunctionModulesFromReferencedProjects(RubberduckParserState state)
7070
{
71-
_conversionModule = state.AllDeclarations.SingleOrDefault(
72-
item => item.IdentifierName == "Conversion" && item.Scope == "VBE7.DLL;VBA.Conversion");
71+
var finder = new DeclarationFinder(state.AllDeclarations, new CommentNode[] { }, new IAnnotation[] { });
7372

74-
_fileSystemModule = state.AllDeclarations.SingleOrDefault(
75-
item => item.IdentifierName == "FileSystem" && item.Scope == "VBE7.DLL;VBA.FileSystem");
76-
77-
_interactionModule = state.AllDeclarations.SingleOrDefault(
78-
item => item.IdentifierName == "Interaction" && item.Scope == "VBE7.DLL;VBA.Interaction");
79-
80-
_stringsModule = state.AllDeclarations.SingleOrDefault(
81-
item => item.IdentifierName == "Strings" && item.Scope == "VBE7.DLL;VBA.Strings");
73+
var vba = finder.FindProject("VBA");
74+
if (vba == null)
75+
{
76+
// If the VBA project is null, we haven't loaded any COM references;
77+
// we're in a unit test and the mock project didn't setup any references.
78+
return;
79+
}
8280

83-
_dateTimeModule = state.AllDeclarations.SingleOrDefault(
84-
item => item.IdentifierName == "DateTime" && item.Scope == "VBE7.DLL;VBA.DateTime");
81+
_conversionModule = finder.FindStdModule("Conversion", vba, true);
82+
_fileSystemModule = finder.FindStdModule("FileSystem", vba, true);
83+
_interactionModule = finder.FindStdModule("Interaction", vba, true);
84+
_stringsModule = finder.FindStdModule("Strings", vba, true);
85+
_dateTimeModule = finder.FindStdModule("DateTime", vba, true);
8586
}
8687

8788

@@ -130,8 +131,7 @@ private List<FunctionDeclaration> FunctionAliasesWithoutParameters()
130131
private FunctionDeclaration ErrorFunction()
131132
{
132133
return new FunctionDeclaration(
133-
new QualifiedMemberName(
134-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Conversion"), "Error"),
134+
new QualifiedMemberName(_conversionModule.QualifiedName.QualifiedModuleName, "Error"),
135135
_conversionModule,
136136
_conversionModule,
137137
"Variant",
@@ -149,8 +149,7 @@ private FunctionDeclaration ErrorFunction()
149149
private FunctionDeclaration HexFunction()
150150
{
151151
return new FunctionDeclaration(
152-
new QualifiedMemberName(
153-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Conversion"), "Hex"),
152+
new QualifiedMemberName(_conversionModule.QualifiedName.QualifiedModuleName, "Hex"),
154153
_conversionModule,
155154
_conversionModule,
156155
"Variant",
@@ -168,8 +167,7 @@ private FunctionDeclaration HexFunction()
168167
private FunctionDeclaration OctFunction()
169168
{
170169
return new FunctionDeclaration(
171-
new QualifiedMemberName(
172-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Conversion"), "Oct"),
170+
new QualifiedMemberName(_conversionModule.QualifiedName.QualifiedModuleName, "Oct"),
173171
_conversionModule,
174172
_conversionModule,
175173
"Variant",
@@ -187,8 +185,7 @@ private FunctionDeclaration OctFunction()
187185
private FunctionDeclaration StrFunction()
188186
{
189187
return new FunctionDeclaration(
190-
new QualifiedMemberName(
191-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Conversion"), "Str"),
188+
new QualifiedMemberName(_conversionModule.QualifiedName.QualifiedModuleName, "Str"),
192189
_conversionModule,
193190
_conversionModule,
194191
"Variant",
@@ -206,8 +203,7 @@ private FunctionDeclaration StrFunction()
206203
private FunctionDeclaration CurDirFunction()
207204
{
208205
return new FunctionDeclaration(
209-
new QualifiedMemberName(
210-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "FileSystem"), "CurDir"),
206+
new QualifiedMemberName(_fileSystemModule.QualifiedName.QualifiedModuleName, "CurDir"),
211207
_fileSystemModule,
212208
_fileSystemModule,
213209
"Variant",
@@ -225,8 +221,7 @@ private FunctionDeclaration CurDirFunction()
225221
private FunctionDeclaration CommandFunction()
226222
{
227223
return new FunctionDeclaration(
228-
new QualifiedMemberName(
229-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Interaction"), "Command"),
224+
new QualifiedMemberName(_interactionModule.QualifiedName.QualifiedModuleName, "Command"),
230225
_interactionModule,
231226
_interactionModule,
232227
"Variant",
@@ -244,8 +239,7 @@ private FunctionDeclaration CommandFunction()
244239
private FunctionDeclaration EnvironFunction()
245240
{
246241
return new FunctionDeclaration(
247-
new QualifiedMemberName(
248-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Interaction"), "Environ"),
242+
new QualifiedMemberName(_interactionModule.QualifiedName.QualifiedModuleName, "Environ"),
249243
_interactionModule,
250244
_interactionModule,
251245
"Variant",
@@ -263,8 +257,7 @@ private FunctionDeclaration EnvironFunction()
263257
private FunctionDeclaration ChrFunction()
264258
{
265259
return new FunctionDeclaration(
266-
new QualifiedMemberName(
267-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Chr"),
260+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Chr"),
268261
_stringsModule,
269262
_stringsModule,
270263
"Variant",
@@ -282,8 +275,7 @@ private FunctionDeclaration ChrFunction()
282275
private FunctionDeclaration ChrwFunction()
283276
{
284277
return new FunctionDeclaration(
285-
new QualifiedMemberName(
286-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "ChrW"),
278+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "ChrW"),
287279
_stringsModule,
288280
_stringsModule,
289281
"Variant",
@@ -301,8 +293,7 @@ private FunctionDeclaration ChrwFunction()
301293
private FunctionDeclaration FormatFunction()
302294
{
303295
return new FunctionDeclaration(
304-
new QualifiedMemberName(
305-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Format"),
296+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Format"),
306297
_stringsModule,
307298
_stringsModule,
308299
"Variant",
@@ -320,8 +311,7 @@ private FunctionDeclaration FormatFunction()
320311
private FunctionDeclaration LCaseFunction()
321312
{
322313
return new FunctionDeclaration(
323-
new QualifiedMemberName(
324-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "LCase"),
314+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "LCase"),
325315
_stringsModule,
326316
_stringsModule,
327317
"Variant",
@@ -339,8 +329,7 @@ private FunctionDeclaration LCaseFunction()
339329
private FunctionDeclaration LeftFunction()
340330
{
341331
return new FunctionDeclaration(
342-
new QualifiedMemberName(
343-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Left"),
332+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Left"),
344333
_stringsModule,
345334
_stringsModule,
346335
"Variant",
@@ -358,8 +347,7 @@ private FunctionDeclaration LeftFunction()
358347
private FunctionDeclaration LeftBFunction()
359348
{
360349
return new FunctionDeclaration(
361-
new QualifiedMemberName(
362-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "LeftB"),
350+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "LeftB"),
363351
_stringsModule,
364352
_stringsModule,
365353
"Variant",
@@ -377,8 +365,7 @@ private FunctionDeclaration LeftBFunction()
377365
private FunctionDeclaration LTrimFunction()
378366
{
379367
return new FunctionDeclaration(
380-
new QualifiedMemberName(
381-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "LTrim"),
368+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "LTrim"),
382369
_stringsModule,
383370
_stringsModule,
384371
"Variant",
@@ -396,8 +383,7 @@ private FunctionDeclaration LTrimFunction()
396383
private FunctionDeclaration MidFunction()
397384
{
398385
return new FunctionDeclaration(
399-
new QualifiedMemberName(
400-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Mid"),
386+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Mid"),
401387
_stringsModule,
402388
_stringsModule,
403389
"Variant",
@@ -415,8 +401,7 @@ private FunctionDeclaration MidFunction()
415401
private FunctionDeclaration MidBFunction()
416402
{
417403
return new FunctionDeclaration(
418-
new QualifiedMemberName(
419-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "MidB"),
404+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "MidB"),
420405
_stringsModule,
421406
_stringsModule,
422407
"Variant",
@@ -434,8 +419,7 @@ private FunctionDeclaration MidBFunction()
434419
private FunctionDeclaration TrimFunction()
435420
{
436421
return new FunctionDeclaration(
437-
new QualifiedMemberName(
438-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Trim"),
422+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Trim"),
439423
_stringsModule,
440424
_stringsModule,
441425
"Variant",
@@ -453,8 +437,7 @@ private FunctionDeclaration TrimFunction()
453437
private FunctionDeclaration RightFunction()
454438
{
455439
return new FunctionDeclaration(
456-
new QualifiedMemberName(
457-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Right"),
440+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Right"),
458441
_stringsModule,
459442
_stringsModule,
460443
"Variant",
@@ -472,8 +455,7 @@ private FunctionDeclaration RightFunction()
472455
private FunctionDeclaration RightBFunction()
473456
{
474457
return new FunctionDeclaration(
475-
new QualifiedMemberName(
476-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "RightB"),
458+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "RightB"),
477459
_stringsModule,
478460
_stringsModule,
479461
"Variant",
@@ -491,8 +473,7 @@ private FunctionDeclaration RightBFunction()
491473
private FunctionDeclaration RTrimFunction()
492474
{
493475
return new FunctionDeclaration(
494-
new QualifiedMemberName(
495-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "RTrim"),
476+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "RTrim"),
496477
_stringsModule,
497478
_stringsModule,
498479
"Variant",
@@ -510,8 +491,7 @@ private FunctionDeclaration RTrimFunction()
510491
private FunctionDeclaration UCaseFunction()
511492
{
512493
return new FunctionDeclaration(
513-
new QualifiedMemberName(
514-
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "UCase"),
494+
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "UCase"),
515495
_stringsModule,
516496
_stringsModule,
517497
"Variant",

Rubberduck.Parsing/Symbols/DebugDeclarations.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,23 @@ namespace Rubberduck.Parsing.Symbols
1010
public class DebugDeclarations : ICustomDeclarationLoader
1111
{
1212
public static Declaration DebugPrint;
13-
private readonly DeclarationFinder _finder;
13+
private readonly RubberduckParserState _state;
1414

1515
public DebugDeclarations(RubberduckParserState state)
1616
{
17-
_finder = new DeclarationFinder(state.AllDeclarations, new CommentNode[] { }, new IAnnotation[] { });
17+
_state = state;
1818
}
1919

2020
public IReadOnlyList<Declaration> Load()
2121
{
22-
if (ThereIsAGlobalBuiltInErrVariableDeclaration(_finder))
22+
var finder = new DeclarationFinder(_state.AllDeclarations, new CommentNode[] { }, new IAnnotation[] { });
23+
24+
if (ThereIsAGlobalBuiltInErrVariableDeclaration(finder))
2325
{
2426
return new List<Declaration>();
2527
}
2628

27-
var vba = _finder.FindProject("VBA");
29+
var vba = finder.FindProject("VBA");
2830
if (vba == null)
2931
{
3032
// If the VBA project is null, we haven't loaded any COM references;

0 commit comments

Comments
 (0)