Skip to content

Commit c49250a

Browse files
committed
added VBA.DateTime aliases (Date & Time), fixed #2350
1 parent 7ceaec2 commit c49250a

File tree

1 file changed

+51
-3
lines changed

1 file changed

+51
-3
lines changed

Rubberduck.Parsing/Symbols/AliasDeclarations.cs

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ public class AliasDeclarations : ICustomDeclarationLoader
1414
private Declaration _fileSystemModule;
1515
private Declaration _interactionModule;
1616
private Declaration _stringsModule;
17+
private Declaration _dateTimeModule;
1718

1819
public AliasDeclarations(RubberduckParserState state)
1920
{
@@ -48,7 +49,9 @@ public IReadOnlyList<Declaration> Load()
4849
Grammar.Tokens.RightB,
4950
Grammar.Tokens.RTrim,
5051
Grammar.Tokens.String,
51-
Grammar.Tokens.UCase
52+
Grammar.Tokens.UCase,
53+
Grammar.Tokens.Date,
54+
Grammar.Tokens.Time,
5255
};
5356

5457
private IReadOnlyList<Declaration> AddAliasDeclarations()
@@ -64,7 +67,7 @@ private IReadOnlyList<Declaration> AddAliasDeclarations()
6467
var functionAliases = FunctionAliasesWithoutParameters();
6568
AddParametersToAliasesFromReferencedFunctions(functionAliases, possiblyAliasedFunctions);
6669

67-
return functionAliases;
70+
return functionAliases.Concat<Declaration>(PropertyGetDeclarations()).ToList();
6871
}
6972

7073
private void UpdateAliasFunctionModulesFromReferencedProjects(RubberduckParserState state)
@@ -83,6 +86,7 @@ private void UpdateAliasFunctionModulesFromReferencedProjects(RubberduckParserSt
8386
_fileSystemModule = finder.FindStdModule("FileSystem", vba, true);
8487
_interactionModule = finder.FindStdModule("Interaction", vba, true);
8588
_stringsModule = finder.FindStdModule("Strings", vba, true);
89+
_dateTimeModule = finder.FindStdModule("DateTime", vba, true);
8690
}
8791

8892

@@ -102,6 +106,50 @@ private List<Declaration> ReferencedBuiltInFunctionsThatMightHaveAnAlias(Rubberd
102106
return functions.ToList();
103107
}
104108

109+
private List<PropertyGetDeclaration> PropertyGetDeclarations()
110+
{
111+
return new List<PropertyGetDeclaration>
112+
{
113+
DatePropertyGet(),
114+
TimePropertyGet(),
115+
};
116+
}
117+
118+
private PropertyGetDeclaration DatePropertyGet()
119+
{
120+
return new PropertyGetDeclaration(
121+
new QualifiedMemberName(_dateTimeModule.QualifiedName.QualifiedModuleName, "Date"),
122+
_dateTimeModule,
123+
_dateTimeModule,
124+
"Variant",
125+
null,
126+
string.Empty,
127+
Accessibility.Global,
128+
null,
129+
new Selection(),
130+
false,
131+
true,
132+
new List<IAnnotation>(),
133+
new Attributes());
134+
}
135+
136+
private PropertyGetDeclaration TimePropertyGet()
137+
{
138+
return new PropertyGetDeclaration(
139+
new QualifiedMemberName(_dateTimeModule.QualifiedName.QualifiedModuleName, "Time"),
140+
_dateTimeModule,
141+
_dateTimeModule,
142+
"Variant",
143+
null,
144+
string.Empty,
145+
Accessibility.Global,
146+
null,
147+
new Selection(),
148+
false,
149+
true,
150+
new List<IAnnotation>(),
151+
new Attributes());
152+
}
105153

106154
private List<FunctionDeclaration> FunctionAliasesWithoutParameters()
107155
{
@@ -128,7 +176,7 @@ private List<FunctionDeclaration> FunctionAliasesWithoutParameters()
128176
RightBFunction(),
129177
RTrimFunction(),
130178
StringFunction(),
131-
UCaseFunction()
179+
UCaseFunction(),
132180
};
133181
}
134182

0 commit comments

Comments
 (0)