Skip to content

Commit d195ced

Browse files
committed
Merge pull request #1197 from Hosch250/BugBlipper
XAML Source Control
2 parents b69df78 + bfec439 commit d195ced

File tree

122 files changed

+6386
-8293
lines changed

Some content is hidden

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

122 files changed

+6386
-8293
lines changed

RetailCoder.VBE/Extension.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@ public void OnConnection(object Application, ext_ConnectMode ConnectMode, object
4242
currentDomain.AssemblyResolve += LoadFromSameFolder;
4343

4444
_kernel.Load(new RubberduckModule(_kernel, (VBE)Application, (AddIn)AddInInst));
45-
_kernel.Load(new UI.SourceControl.SourceControlBindings());
4645
_kernel.Load(new CommandBarsModule(_kernel));
4746

4847
var app = _kernel.Get<App>();

RetailCoder.VBE/Inspections/EmptyStringLiteralInspectionResult.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public EmptyStringLiteralInspectionResult(IInspection inspection, QualifiedConte
2323

2424
public override string Description
2525
{
26-
get { return Inspection.Name; }
26+
get { return InspectionsUI.EmptyStringLiteralInspectionResultFormat; }
2727
}
2828
}
2929

RetailCoder.VBE/Inspections/FunctionReturnValueNotUsedInspection.cs

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public override IEnumerable<InspectionResultBase> GetInspectionResults()
2525
{
2626
// Note: This inspection does not find dictionary calls (e.g. foo!bar) since we do not know what the
2727
// default member is of a class.
28-
var interfaceMembers = UserDeclarations.FindInterfaceMembers();
28+
var interfaceMembers = UserDeclarations.FindInterfaceMembers().ToList();
2929
var interfaceImplementationMembers = UserDeclarations.FindInterfaceImplementationMembers();
3030
var functions = UserDeclarations.Where(function => function.DeclarationType == DeclarationType.Function).ToList();
3131
var interfaceMemberIssues = GetInterfaceMemberIssues(interfaceMembers);
@@ -36,30 +36,22 @@ public override IEnumerable<InspectionResultBase> GetInspectionResults()
3636

3737
private IEnumerable<FunctionReturnValueNotUsedInspectionResult> GetInterfaceMemberIssues(IEnumerable<Declaration> interfaceMembers)
3838
{
39-
var interfaceIssues = new List<FunctionReturnValueNotUsedInspectionResult>();
40-
foreach (var interfaceMember in interfaceMembers)
41-
{
42-
var implementationMembers = UserDeclarations.FindInterfaceImplementationMembers(interfaceMember.IdentifierName);
43-
if (!IsReturnValueUsed(interfaceMember) && implementationMembers.All(member => !IsReturnValueUsed(member)))
44-
{
45-
var implementationMemberIssues = implementationMembers
46-
.Select(implementationMember =>
47-
Tuple.Create(
48-
implementationMember.Context,
49-
new QualifiedSelection(
50-
implementationMember.QualifiedName.QualifiedModuleName,
51-
implementationMember.Selection),
52-
GetReturnStatements(implementationMember)));
53-
54-
interfaceIssues.Add(new FunctionReturnValueNotUsedInspectionResult(
55-
this,
56-
interfaceMember.Context,
57-
interfaceMember.QualifiedName,
58-
GetReturnStatements(interfaceMember),
59-
implementationMemberIssues));
60-
}
61-
}
62-
return interfaceIssues;
39+
return from interfaceMember in interfaceMembers
40+
let implementationMembers =
41+
UserDeclarations.FindInterfaceImplementationMembers(interfaceMember.IdentifierName).ToList()
42+
where
43+
!IsReturnValueUsed(interfaceMember) &&
44+
implementationMembers.All(member => !IsReturnValueUsed(member))
45+
let implementationMemberIssues =
46+
implementationMembers.Select(
47+
implementationMember =>
48+
Tuple.Create(implementationMember.Context,
49+
new QualifiedSelection(implementationMember.QualifiedName.QualifiedModuleName,
50+
implementationMember.Selection), GetReturnStatements(implementationMember)))
51+
select
52+
new FunctionReturnValueNotUsedInspectionResult(this, interfaceMember.Context,
53+
interfaceMember.QualifiedName, GetReturnStatements(interfaceMember),
54+
implementationMemberIssues, interfaceMember);
6355
}
6456

6557
private IEnumerable<FunctionReturnValueNotUsedInspectionResult> GetNonInterfaceIssues(IEnumerable<Declaration> nonInterfaceFunctions)
@@ -71,7 +63,8 @@ private IEnumerable<FunctionReturnValueNotUsedInspectionResult> GetNonInterfaceI
7163
this,
7264
function.Context,
7365
function.QualifiedName,
74-
GetReturnStatements(function)));
66+
GetReturnStatements(function),
67+
function));
7568
return nonInterfaceIssues;
7669
}
7770

@@ -84,8 +77,7 @@ private IEnumerable<string> GetReturnStatements(Declaration function)
8477

8578
private bool IsReturnValueUsed(Declaration function)
8679
{
87-
return function.References.Count() > 0
88-
&& function.References.Any(usage =>
80+
return function.References.Any(usage =>
8981
!IsReturnStatement(function, usage) && !IsAddressOfCall(usage) && !IsCallWithoutAssignment(usage));
9082
}
9183

RetailCoder.VBE/Inspections/FunctionReturnValueNotUsedInspectionResult.cs

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
using System;
44
using System.Collections.Generic;
55
using System.Linq;
6+
using Rubberduck.Parsing.Symbols;
67

78
namespace Rubberduck.Inspections
89
{
@@ -11,8 +12,13 @@ public class FunctionReturnValueNotUsedInspectionResult : InspectionResultBase
1112
private readonly IEnumerable<CodeInspectionQuickFix> _quickFixes;
1213
private QualifiedMemberName _memberName;
1314

14-
public FunctionReturnValueNotUsedInspectionResult(IInspection inspection, ParserRuleContext context, QualifiedMemberName qualifiedName, IEnumerable<string> returnStatements)
15-
: this(inspection, context, qualifiedName, returnStatements, new List<Tuple<ParserRuleContext, QualifiedSelection, IEnumerable<string>>>())
15+
public FunctionReturnValueNotUsedInspectionResult(
16+
IInspection inspection,
17+
ParserRuleContext context,
18+
QualifiedMemberName qualifiedName,
19+
IEnumerable<string> returnStatements,
20+
Declaration target)
21+
: this(inspection, context, qualifiedName, returnStatements, new List<Tuple<ParserRuleContext, QualifiedSelection, IEnumerable<string>>>(), target)
1622
{
1723
}
1824

@@ -21,10 +27,10 @@ public FunctionReturnValueNotUsedInspectionResult(
2127
ParserRuleContext context,
2228
QualifiedMemberName qualifiedName,
2329
IEnumerable<string> returnStatements,
24-
IEnumerable<Tuple<ParserRuleContext, QualifiedSelection, IEnumerable<string>>> children)
25-
: base(inspection, qualifiedName.QualifiedModuleName, context)
30+
IEnumerable<Tuple<ParserRuleContext, QualifiedSelection, IEnumerable<string>>> children,
31+
Declaration target)
32+
: base(inspection, qualifiedName.QualifiedModuleName, context, target)
2633
{
27-
_memberName = qualifiedName;
2834
var root = new ConvertToProcedureQuickFix(context, QualifiedSelection, returnStatements);
2935
var compositeFix = new CompositeCodeInspectionFix(root);
3036
children.ToList().ForEach(child => compositeFix.AddChild(new ConvertToProcedureQuickFix(child.Item1, child.Item2, child.Item3)));
@@ -40,7 +46,7 @@ public override string Description
4046
{
4147
get
4248
{
43-
return string.Format(InspectionsUI.FunctionReturnValueNotUsedInspectionResultFormat, _memberName.MemberName);
49+
return string.Format(InspectionsUI.FunctionReturnValueNotUsedInspectionResultFormat, Target.IdentifierName);
4450
}
4551
}
4652
}

RetailCoder.VBE/Inspections/ImplicitByRefParameterInspection.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@ public override IEnumerable<InspectionResultBase> GetInspectionResults()
2929
&& !interfaceMembers.Select(m => m.Scope).Contains(item.ParentScope)
3030
let arg = item.Context as VBAParser.ArgContext
3131
where arg != null && arg.BYREF() == null && arg.BYVAL() == null
32-
select new {Declaration = item, Context = new QualifiedContext<VBAParser.ArgContext>(item.QualifiedName, arg) })
33-
.Select(issue => new ImplicitByRefParameterInspectionResult(this, issue.Context, issue.Declaration));
32+
select new QualifiedContext<VBAParser.ArgContext>(item.QualifiedName, arg))
33+
.Select(issue => new ImplicitByRefParameterInspectionResult(this, issue.Context.ambiguousIdentifier().GetText(), issue));
3434

3535

3636
return issues;

RetailCoder.VBE/Inspections/ImplicitByRefParameterInspectionResult.cs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@ namespace Rubberduck.Inspections
99
{
1010
public class ImplicitByRefParameterInspectionResult : InspectionResultBase
1111
{
12+
private readonly string _identifierName;
1213
private readonly IEnumerable<CodeInspectionQuickFix> _quickFixes;
1314

14-
public ImplicitByRefParameterInspectionResult(IInspection inspection, QualifiedContext<VBAParser.ArgContext> qualifiedContext, Declaration declaration)
15-
: base(inspection, declaration)
15+
public ImplicitByRefParameterInspectionResult(IInspection inspection, string identifierName, QualifiedContext<VBAParser.ArgContext> qualifiedContext)
16+
: base(inspection, qualifiedContext.ModuleName, qualifiedContext.Context)
1617
{
18+
_identifierName = identifierName;
1719
_quickFixes = new CodeInspectionQuickFix[]
1820
{
1921
new ImplicitByRefParameterQuickFix(Context, QualifiedSelection, InspectionsUI.ImplicitByRefParameterQuickFix, Tokens.ByRef),
@@ -25,7 +27,7 @@ public ImplicitByRefParameterInspectionResult(IInspection inspection, QualifiedC
2527

2628
public override string Description
2729
{
28-
get { return string.Format(InspectionsUI.ImplicitByRefParameterInspectionResultFormat, Target.IdentifierName); }
30+
get { return string.Format(InspectionsUI.ImplicitByRefParameterInspectionResultFormat, _identifierName); }
2931
}
3032
}
3133

RetailCoder.VBE/Inspections/ImplicitVariantReturnTypeInspection.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ public override IEnumerable<InspectionResultBase> GetInspectionResults()
3131
where !item.IsInspectionDisabled(AnnotationName)
3232
&& ProcedureTypes.Contains(item.DeclarationType)
3333
&& !item.IsTypeSpecified()
34-
select new ImplicitVariantReturnTypeInspectionResult(this, item);
34+
let issue = new {Declaration = item, QualifiedContext = new QualifiedContext<ParserRuleContext>(item.QualifiedName, item.Context)}
35+
select new ImplicitVariantReturnTypeInspectionResult(this, issue.Declaration.IdentifierName, issue.QualifiedContext);
3536
return issues;
3637
}
3738
}

RetailCoder.VBE/Inspections/ImplicitVariantReturnTypeInspectionResult.cs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,17 @@ namespace Rubberduck.Inspections
1010
{
1111
public sealed class ImplicitVariantReturnTypeInspectionResult : InspectionResultBase
1212
{
13+
private readonly string _identifierName;
1314
private readonly IEnumerable<CodeInspectionQuickFix> _quickFixes;
1415

15-
public ImplicitVariantReturnTypeInspectionResult(IInspection inspection, Declaration target)
16-
: base(inspection, target)
16+
public ImplicitVariantReturnTypeInspectionResult(IInspection inspection, string identifierName, QualifiedContext<ParserRuleContext> qualifiedContext)
17+
: base(inspection, qualifiedContext.ModuleName, qualifiedContext.Context)
1718
{
19+
_identifierName = identifierName;
1820
_quickFixes = new CodeInspectionQuickFix[]
1921
{
2022
new SetExplicitVariantReturnTypeQuickFix(Context, QualifiedSelection, InspectionsUI.SetExplicitVariantReturnTypeQuickFix),
21-
new IgnoreOnceQuickFix(Target.Context, QualifiedSelection, Inspection.AnnotationName),
23+
new IgnoreOnceQuickFix(Context, QualifiedSelection, Inspection.AnnotationName),
2224
};
2325
}
2426

@@ -28,7 +30,8 @@ public override string Description
2830
{
2931
get
3032
{
31-
return string.Format(InspectionsUI.ImplicitVariantReturnTypeInspectionResultFormat, Target.IdentifierName);
33+
return string.Format(InspectionsUI.ImplicitVariantReturnTypeInspectionResultFormat,
34+
_identifierName);
3235
}
3336
}
3437
}

RetailCoder.VBE/Inspections/InspectionResultBase.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,18 @@ protected InspectionResultBase(IInspection inspection, QualifiedModuleName quali
3636
_comment = comment;
3737
}
3838

39+
/// <summary>
40+
/// Creates an inspection result.
41+
/// </summary>
42+
protected InspectionResultBase(IInspection inspection, QualifiedModuleName qualifiedName, ParserRuleContext context, Declaration declaration, CommentNode comment = null)
43+
{
44+
_inspection = inspection;
45+
_qualifiedName = qualifiedName;
46+
_context = context;
47+
_target = declaration;
48+
_comment = comment;
49+
}
50+
3951
private readonly IInspection _inspection;
4052
public IInspection Inspection { get { return _inspection; } }
4153

RetailCoder.VBE/Inspections/InspectionsUI.Designer.cs

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)