@@ -68,20 +68,21 @@ private IReadOnlyList<Declaration> AddAliasDeclarations()
68
68
69
69
private void UpdateAliasFunctionModulesFromReferencedProjects ( RubberduckParserState state )
70
70
{
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 [ ] { } ) ;
73
72
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
+ }
82
80
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 ) ;
85
86
}
86
87
87
88
@@ -130,8 +131,7 @@ private List<FunctionDeclaration> FunctionAliasesWithoutParameters()
130
131
private FunctionDeclaration ErrorFunction ( )
131
132
{
132
133
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" ) ,
135
135
_conversionModule ,
136
136
_conversionModule ,
137
137
"Variant" ,
@@ -149,8 +149,7 @@ private FunctionDeclaration ErrorFunction()
149
149
private FunctionDeclaration HexFunction ( )
150
150
{
151
151
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" ) ,
154
153
_conversionModule ,
155
154
_conversionModule ,
156
155
"Variant" ,
@@ -168,8 +167,7 @@ private FunctionDeclaration HexFunction()
168
167
private FunctionDeclaration OctFunction ( )
169
168
{
170
169
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" ) ,
173
171
_conversionModule ,
174
172
_conversionModule ,
175
173
"Variant" ,
@@ -187,8 +185,7 @@ private FunctionDeclaration OctFunction()
187
185
private FunctionDeclaration StrFunction ( )
188
186
{
189
187
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" ) ,
192
189
_conversionModule ,
193
190
_conversionModule ,
194
191
"Variant" ,
@@ -206,8 +203,7 @@ private FunctionDeclaration StrFunction()
206
203
private FunctionDeclaration CurDirFunction ( )
207
204
{
208
205
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" ) ,
211
207
_fileSystemModule ,
212
208
_fileSystemModule ,
213
209
"Variant" ,
@@ -225,8 +221,7 @@ private FunctionDeclaration CurDirFunction()
225
221
private FunctionDeclaration CommandFunction ( )
226
222
{
227
223
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" ) ,
230
225
_interactionModule ,
231
226
_interactionModule ,
232
227
"Variant" ,
@@ -244,8 +239,7 @@ private FunctionDeclaration CommandFunction()
244
239
private FunctionDeclaration EnvironFunction ( )
245
240
{
246
241
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" ) ,
249
243
_interactionModule ,
250
244
_interactionModule ,
251
245
"Variant" ,
@@ -263,8 +257,7 @@ private FunctionDeclaration EnvironFunction()
263
257
private FunctionDeclaration ChrFunction ( )
264
258
{
265
259
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" ) ,
268
261
_stringsModule ,
269
262
_stringsModule ,
270
263
"Variant" ,
@@ -282,8 +275,7 @@ private FunctionDeclaration ChrFunction()
282
275
private FunctionDeclaration ChrwFunction ( )
283
276
{
284
277
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" ) ,
287
279
_stringsModule ,
288
280
_stringsModule ,
289
281
"Variant" ,
@@ -301,8 +293,7 @@ private FunctionDeclaration ChrwFunction()
301
293
private FunctionDeclaration FormatFunction ( )
302
294
{
303
295
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" ) ,
306
297
_stringsModule ,
307
298
_stringsModule ,
308
299
"Variant" ,
@@ -320,8 +311,7 @@ private FunctionDeclaration FormatFunction()
320
311
private FunctionDeclaration LCaseFunction ( )
321
312
{
322
313
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" ) ,
325
315
_stringsModule ,
326
316
_stringsModule ,
327
317
"Variant" ,
@@ -339,8 +329,7 @@ private FunctionDeclaration LCaseFunction()
339
329
private FunctionDeclaration LeftFunction ( )
340
330
{
341
331
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" ) ,
344
333
_stringsModule ,
345
334
_stringsModule ,
346
335
"Variant" ,
@@ -358,8 +347,7 @@ private FunctionDeclaration LeftFunction()
358
347
private FunctionDeclaration LeftBFunction ( )
359
348
{
360
349
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" ) ,
363
351
_stringsModule ,
364
352
_stringsModule ,
365
353
"Variant" ,
@@ -377,8 +365,7 @@ private FunctionDeclaration LeftBFunction()
377
365
private FunctionDeclaration LTrimFunction ( )
378
366
{
379
367
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" ) ,
382
369
_stringsModule ,
383
370
_stringsModule ,
384
371
"Variant" ,
@@ -396,8 +383,7 @@ private FunctionDeclaration LTrimFunction()
396
383
private FunctionDeclaration MidFunction ( )
397
384
{
398
385
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" ) ,
401
387
_stringsModule ,
402
388
_stringsModule ,
403
389
"Variant" ,
@@ -415,8 +401,7 @@ private FunctionDeclaration MidFunction()
415
401
private FunctionDeclaration MidBFunction ( )
416
402
{
417
403
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" ) ,
420
405
_stringsModule ,
421
406
_stringsModule ,
422
407
"Variant" ,
@@ -434,8 +419,7 @@ private FunctionDeclaration MidBFunction()
434
419
private FunctionDeclaration TrimFunction ( )
435
420
{
436
421
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" ) ,
439
423
_stringsModule ,
440
424
_stringsModule ,
441
425
"Variant" ,
@@ -453,8 +437,7 @@ private FunctionDeclaration TrimFunction()
453
437
private FunctionDeclaration RightFunction ( )
454
438
{
455
439
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" ) ,
458
441
_stringsModule ,
459
442
_stringsModule ,
460
443
"Variant" ,
@@ -472,8 +455,7 @@ private FunctionDeclaration RightFunction()
472
455
private FunctionDeclaration RightBFunction ( )
473
456
{
474
457
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" ) ,
477
459
_stringsModule ,
478
460
_stringsModule ,
479
461
"Variant" ,
@@ -491,8 +473,7 @@ private FunctionDeclaration RightBFunction()
491
473
private FunctionDeclaration RTrimFunction ( )
492
474
{
493
475
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" ) ,
496
477
_stringsModule ,
497
478
_stringsModule ,
498
479
"Variant" ,
@@ -510,8 +491,7 @@ private FunctionDeclaration RTrimFunction()
510
491
private FunctionDeclaration UCaseFunction ( )
511
492
{
512
493
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" ) ,
515
495
_stringsModule ,
516
496
_stringsModule ,
517
497
"Variant" ,
0 commit comments