Skip to content

Commit fed940b

Browse files
committed
Sync with next
2 parents f28ed0d + b300113 commit fed940b

File tree

118 files changed

+1810
-1274
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

118 files changed

+1810
-1274
lines changed

README.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<img src="https://user-images.githubusercontent.com/5751684/38372412-c3247d70-38bc-11e8-8eaa-2f2d19595a42.png" width=100% />
1+
<img src="https://user-images.githubusercontent.com/5751684/46327997-aeb98d00-c5d2-11e8-9de5-ba6f9cd1eea3.png" />
22

33
<!-- campaign is no longer accepting donations
44
### Donate!
@@ -29,7 +29,6 @@ If you like this project and would like to thank its contributors, you are welco
2929
* [Installing](https://github.com/rubberduck-vba/Rubberduck/wiki/Installing)
3030
* [Getting Started](https://github.com/rubberduck-vba/Rubberduck/blob/next/docs/GettingStarted.md) using Rubberduck
3131
* [Contributing](https://github.com/rubberduck-vba/Rubberduck/blob/next/CONTRIBUTING.md)
32-
* [User Testimonials](https://github.com/rubberduck-vba/Rubberduck/blob/next/thanks.md)
3332

3433
---
3534

Rubberduck.API/VBA/Parser.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@
1212
using Rubberduck.Parsing.Symbols.DeclarationLoaders;
1313
using Rubberduck.Parsing.VBA;
1414
using Rubberduck.Parsing.Symbols;
15-
using Rubberduck.Parsing.Symbols.ParsingExceptions;
1615
using Rubberduck.Parsing.UIContext;
1716
using Rubberduck.Parsing.VBA.ComReferenceLoading;
17+
using Rubberduck.Parsing.VBA.DeclarationCaching;
1818
using Rubberduck.Parsing.VBA.DeclarationResolving;
1919
using Rubberduck.Parsing.VBA.Parsing;
20+
using Rubberduck.Parsing.VBA.Parsing.ParsingExceptions;
2021
using Rubberduck.Parsing.VBA.ReferenceManagement;
2122
using Rubberduck.Resources.Registration;
2223
using Rubberduck.VBEditor.ComManagement;

Rubberduck.CodeAnalysis/CodeMetrics/CodeMetricBase.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System.Collections.Generic;
22
using Rubberduck.Parsing.Grammar;
33
using Rubberduck.Parsing.Symbols;
4+
using Rubberduck.Parsing.VBA.DeclarationCaching;
45
using Rubberduck.VBEditor;
56

67
namespace Rubberduck.CodeAnalysis.CodeMetrics

Rubberduck.CodeAnalysis/CodeMetrics/CodeMetricsAnalyst.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
using Rubberduck.VBEditor;
55
using System.Collections.Generic;
66
using System.Linq;
7+
using Rubberduck.Parsing.VBA.DeclarationCaching;
78

89
namespace Rubberduck.CodeAnalysis.CodeMetrics
910
{

Rubberduck.CodeAnalysis/Inspections/Concrete/SheetAccessedUsingStringInspection.cs

Lines changed: 33 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
6060
var component = GetVBComponentMatchingSheetName(reference);
6161
if (component != null)
6262
{
63-
reference.Properties.CodeName = (string)component.Properties.Single(property => property.Name == "CodeName").Value;
63+
using (var properties = component.Properties)
64+
{
65+
reference.Properties.CodeName = (string)properties.Single(property => property.Name == "CodeName").Value;
66+
}
6467
issues.Add(reference);
6568
}
6669
}
@@ -98,9 +101,35 @@ private IVBComponent GetVBComponentMatchingSheetName(IdentifierReferenceInspecti
98101
var sheetName = FormatSheetName(sheetArgumentContext.GetText());
99102
var project = State.Projects.First(p => p.ProjectId == reference.QualifiedName.ProjectId);
100103

101-
return project.VBComponents.FirstOrDefault(c =>
102-
c.Type == ComponentType.Document &&
103-
(string) c.Properties.First(property => property.Name == "Name").Value == sheetName);
104+
105+
//return project.VBComponents.FirstOrDefault(c =>
106+
// c.Type == ComponentType.Document &&
107+
// (string)c.Properties.First(property => property.Name == "Name").Value == sheetName);
108+
using (var components = project.VBComponents)
109+
{
110+
for (var i = 0; i < components.Count; i++)
111+
{
112+
using (var component = components[i])
113+
using (var properties = component.Properties)
114+
{
115+
if (component.Type == ComponentType.Document)
116+
{
117+
for (var j = 0; j < properties.Count; j++)
118+
{
119+
using (var property = properties[j])
120+
{
121+
if (property.Name == "Name" && (string)property.Value == sheetName)
122+
{
123+
return component;
124+
}
125+
}
126+
}
127+
}
128+
}
129+
}
130+
131+
return null;
132+
}
104133
}
105134

106135
private static string FormatSheetName(string sheetName)

Rubberduck.CodeAnalysis/Inspections/Concrete/UnreachableCaseInspection/ExpressionFilterFactory.cs

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,55 +2,56 @@
22
using Rubberduck.Parsing.Grammar;
33
using System;
44
using System.Collections.Generic;
5+
using System.Globalization;
56
using System.Linq;
67

78
namespace Rubberduck.Inspections.Concrete.UnreachableCaseInspection{
89

910
public static class ExpressionFilterFactory
1011
{
11-
private static Dictionary<string, (long typeMin, long typeMax)> IntegralNumberExtents = new Dictionary<string, (long typeMin, long typeMax)>()
12+
private static readonly Dictionary<string, (long typeMin, long typeMax)> IntegralNumberExtents = new Dictionary<string, (long typeMin, long typeMax)>()
1213
{
1314
[Tokens.LongLong] = (long.MinValue, long.MaxValue),
14-
[Tokens.Long] = (Int32.MinValue, Int32.MaxValue),
15-
[Tokens.Integer] = (Int16.MinValue, Int16.MaxValue),
16-
[Tokens.Int] = (Int16.MinValue, Int16.MaxValue),
15+
[Tokens.Long] = (int.MinValue, int.MaxValue),
16+
[Tokens.Integer] = (short.MinValue, short.MaxValue),
17+
[Tokens.Int] = (short.MinValue, short.MaxValue),
1718
[Tokens.Byte] = (byte.MinValue, byte.MaxValue)
1819
};
1920

2021
public static IExpressionFilter Create(string valueType)
2122
{
2223
if (IntegralNumberExtents.Keys.Contains(valueType))
2324
{
24-
var integralNumberFilter = new ExpressionFilterIntegral(valueType, long.Parse);
25+
var integralNumberFilter = new ExpressionFilterIntegral(valueType, s => long.Parse(s, CultureInfo.InvariantCulture));
2526
integralNumberFilter.SetExtents(IntegralNumberExtents[valueType].typeMin, IntegralNumberExtents[valueType].typeMax);
2627
return integralNumberFilter;
2728
}
28-
else if (valueType.Equals(Tokens.Double) || valueType.Equals(Tokens.Single))
29+
if (valueType.Equals(Tokens.Double) || valueType.Equals(Tokens.Single))
2930
{
30-
var floatingPointNumberFilter = new ExpressionFilter<double>(valueType, double.Parse);
31+
var floatingPointNumberFilter = new ExpressionFilter<double>(valueType, s => double.Parse(s, CultureInfo.InvariantCulture));
3132
if (valueType.Equals(Tokens.Single))
3233
{
3334
floatingPointNumberFilter.SetExtents(float.MinValue, float.MaxValue);
3435
}
3536
return floatingPointNumberFilter;
3637
}
37-
else if (valueType.Equals(Tokens.Currency))
38+
if (valueType.Equals(Tokens.Currency))
3839
{
3940
var fixedPointNumberFilter = new ExpressionFilter<decimal>(valueType, VBACurrency.Parse);
4041
fixedPointNumberFilter.SetExtents(VBACurrency.MinValue, VBACurrency.MaxValue);
4142
return fixedPointNumberFilter;
4243
}
43-
else if (valueType.Equals(Tokens.Boolean))
44+
if (valueType.Equals(Tokens.Boolean))
4445
{
4546
return new ExpressionFilterBoolean();
4647
}
4748

48-
else if (valueType.Equals(Tokens.Date))
49+
if (valueType.Equals(Tokens.Date))
4950
{
5051
return new ExpressionFilterDate();
5152
}
5253

53-
return new ExpressionFilter<string>(valueType, (a) => { return a; });
54+
return new ExpressionFilter<string>(valueType, a => a);
5455
}
5556
}
5657
}

0 commit comments

Comments
 (0)