Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 34 additions & 54 deletions Rubberduck.Parsing/Symbols/AliasDeclarations.cs
Original file line number Diff line number Diff line change
Expand Up @@ -68,20 +68,21 @@ private IReadOnlyList<Declaration> AddAliasDeclarations()

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

_fileSystemModule = state.AllDeclarations.SingleOrDefault(
item => item.IdentifierName == "FileSystem" && item.Scope == "VBE7.DLL;VBA.FileSystem");

_interactionModule = state.AllDeclarations.SingleOrDefault(
item => item.IdentifierName == "Interaction" && item.Scope == "VBE7.DLL;VBA.Interaction");

_stringsModule = state.AllDeclarations.SingleOrDefault(
item => item.IdentifierName == "Strings" && item.Scope == "VBE7.DLL;VBA.Strings");
var vba = finder.FindProject("VBA");
if (vba == null)
{
// If the VBA project is null, we haven't loaded any COM references;
// we're in a unit test and the mock project didn't setup any references.
return;
}

_dateTimeModule = state.AllDeclarations.SingleOrDefault(
item => item.IdentifierName == "DateTime" && item.Scope == "VBE7.DLL;VBA.DateTime");
_conversionModule = finder.FindStdModule("Conversion", vba, true);
_fileSystemModule = finder.FindStdModule("FileSystem", vba, true);
_interactionModule = finder.FindStdModule("Interaction", vba, true);
_stringsModule = finder.FindStdModule("Strings", vba, true);
_dateTimeModule = finder.FindStdModule("DateTime", vba, true);
}


Expand Down Expand Up @@ -130,8 +131,7 @@ private List<FunctionDeclaration> FunctionAliasesWithoutParameters()
private FunctionDeclaration ErrorFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Conversion"), "Error"),
new QualifiedMemberName(_conversionModule.QualifiedName.QualifiedModuleName, "Error"),
_conversionModule,
_conversionModule,
"Variant",
Expand All @@ -149,8 +149,7 @@ private FunctionDeclaration ErrorFunction()
private FunctionDeclaration HexFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Conversion"), "Hex"),
new QualifiedMemberName(_conversionModule.QualifiedName.QualifiedModuleName, "Hex"),
_conversionModule,
_conversionModule,
"Variant",
Expand All @@ -168,8 +167,7 @@ private FunctionDeclaration HexFunction()
private FunctionDeclaration OctFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Conversion"), "Oct"),
new QualifiedMemberName(_conversionModule.QualifiedName.QualifiedModuleName, "Oct"),
_conversionModule,
_conversionModule,
"Variant",
Expand All @@ -187,8 +185,7 @@ private FunctionDeclaration OctFunction()
private FunctionDeclaration StrFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Conversion"), "Str"),
new QualifiedMemberName(_conversionModule.QualifiedName.QualifiedModuleName, "Str"),
_conversionModule,
_conversionModule,
"Variant",
Expand All @@ -206,8 +203,7 @@ private FunctionDeclaration StrFunction()
private FunctionDeclaration CurDirFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "FileSystem"), "CurDir"),
new QualifiedMemberName(_fileSystemModule.QualifiedName.QualifiedModuleName, "CurDir"),
_fileSystemModule,
_fileSystemModule,
"Variant",
Expand All @@ -225,8 +221,7 @@ private FunctionDeclaration CurDirFunction()
private FunctionDeclaration CommandFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Interaction"), "Command"),
new QualifiedMemberName(_interactionModule.QualifiedName.QualifiedModuleName, "Command"),
_interactionModule,
_interactionModule,
"Variant",
Expand All @@ -244,8 +239,7 @@ private FunctionDeclaration CommandFunction()
private FunctionDeclaration EnvironFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Interaction"), "Environ"),
new QualifiedMemberName(_interactionModule.QualifiedName.QualifiedModuleName, "Environ"),
_interactionModule,
_interactionModule,
"Variant",
Expand All @@ -263,8 +257,7 @@ private FunctionDeclaration EnvironFunction()
private FunctionDeclaration ChrFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Chr"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Chr"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -282,8 +275,7 @@ private FunctionDeclaration ChrFunction()
private FunctionDeclaration ChrwFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "ChrW"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "ChrW"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -301,8 +293,7 @@ private FunctionDeclaration ChrwFunction()
private FunctionDeclaration FormatFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Format"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Format"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -320,8 +311,7 @@ private FunctionDeclaration FormatFunction()
private FunctionDeclaration LCaseFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "LCase"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "LCase"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -339,8 +329,7 @@ private FunctionDeclaration LCaseFunction()
private FunctionDeclaration LeftFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Left"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Left"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -358,8 +347,7 @@ private FunctionDeclaration LeftFunction()
private FunctionDeclaration LeftBFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "LeftB"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "LeftB"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -377,8 +365,7 @@ private FunctionDeclaration LeftBFunction()
private FunctionDeclaration LTrimFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "LTrim"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "LTrim"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -396,8 +383,7 @@ private FunctionDeclaration LTrimFunction()
private FunctionDeclaration MidFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Mid"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Mid"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -415,8 +401,7 @@ private FunctionDeclaration MidFunction()
private FunctionDeclaration MidBFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "MidB"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "MidB"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -434,8 +419,7 @@ private FunctionDeclaration MidBFunction()
private FunctionDeclaration TrimFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Trim"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Trim"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -453,8 +437,7 @@ private FunctionDeclaration TrimFunction()
private FunctionDeclaration RightFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "Right"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "Right"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -472,8 +455,7 @@ private FunctionDeclaration RightFunction()
private FunctionDeclaration RightBFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "RightB"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "RightB"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -491,8 +473,7 @@ private FunctionDeclaration RightBFunction()
private FunctionDeclaration RTrimFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "RTrim"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "RTrim"),
_stringsModule,
_stringsModule,
"Variant",
Expand All @@ -510,8 +491,7 @@ private FunctionDeclaration RTrimFunction()
private FunctionDeclaration UCaseFunction()
{
return new FunctionDeclaration(
new QualifiedMemberName(
new QualifiedModuleName("VBA", "C:\\Program Files\\Common Files\\Microsoft Shared\\VBA\\VBA7.1\\VBE7.DLL", "Strings"), "UCase"),
new QualifiedMemberName(_stringsModule.QualifiedName.QualifiedModuleName, "UCase"),
_stringsModule,
_stringsModule,
"Variant",
Expand Down
10 changes: 6 additions & 4 deletions Rubberduck.Parsing/Symbols/DebugDeclarations.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,23 @@ namespace Rubberduck.Parsing.Symbols
public class DebugDeclarations : ICustomDeclarationLoader
{
public static Declaration DebugPrint;
private readonly DeclarationFinder _finder;
private readonly RubberduckParserState _state;

public DebugDeclarations(RubberduckParserState state)
{
_finder = new DeclarationFinder(state.AllDeclarations, new CommentNode[] { }, new IAnnotation[] { });
_state = state;
}

public IReadOnlyList<Declaration> Load()
{
if (ThereIsAGlobalBuiltInErrVariableDeclaration(_finder))
var finder = new DeclarationFinder(_state.AllDeclarations, new CommentNode[] { }, new IAnnotation[] { });

if (ThereIsAGlobalBuiltInErrVariableDeclaration(finder))
{
return new List<Declaration>();
}

var vba = _finder.FindProject("VBA");
var vba = finder.FindProject("VBA");
if (vba == null)
{
// If the VBA project is null, we haven't loaded any COM references;
Expand Down
Loading