Skip to content

Commit 97c224d

Browse files
committed
fixed bug with defaultMember logic
1 parent 1a13a0d commit 97c224d

File tree

4 files changed

+7
-7
lines changed

4 files changed

+7
-7
lines changed

Rubberduck.Inspections/VariableRequiresSetAssignmentEvaluator.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
using System.Collections.Generic;
66
using System.Diagnostics;
77
using System.Linq;
8-
using System.Windows.Forms;
98

109
namespace Rubberduck.Inspections
1110
{

Rubberduck.Parsing/Symbols/Declaration.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,8 @@ private static string CorrectlyFormatedDescription(string literalDescription)
342342
public virtual bool IsObject()
343343
{
344344
return AsTypeName == Tokens.Object
345-
|| (AsTypeDeclaration?.DeclarationType.HasFlag(DeclarationType.ClassModule) ?? false);
345+
|| (AsTypeDeclaration?.DeclarationType.HasFlag(DeclarationType.ClassModule) ?? false)
346+
|| (!AsTypeIsBaseType && !IsArray && !DeclarationType.HasFlag(DeclarationType.UserDefinedType));
346347
}
347348

348349
public void AddReference(

Rubberduck.Parsing/Symbols/IdentifierReferenceResolver.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ private void ResolveDefault(
194194
{
195195
var module = boundExpression.ReferencedDeclaration.AsTypeDeclaration;
196196
var members = _declarationFinder.Members(module);
197-
defaultMember = (IParameterizedDeclaration)members.SingleOrDefault(m => m is IParameterizedDeclaration && m.Attributes.HasDefaultMemberAttribute());
197+
defaultMember = (IParameterizedDeclaration)members.FirstOrDefault(m => m is IParameterizedDeclaration && m.Attributes.HasDefaultMemberAttribute() && (isAssignmentTarget ? m.DeclarationType.HasFlag(DeclarationType.Procedure) : m.DeclarationType.HasFlag(DeclarationType.Function)));
198198
}
199199
_boundExpressionVisitor.AddIdentifierReferences(boundExpression, _qualifiedModuleName, _currentScope, _currentParent, isAssignmentTarget && (defaultMember == null || (!defaultMember.Parameters.Any() || defaultMember.Parameters.All(p => p.IsOptional)) || isSetAssignment), hasExplicitLetStatement);
200200
}

RubberduckTests/QuickFixes/UseSetKeywordForObjectAssignmentQuickFixTests.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,16 @@ public void ObjectVariableNotSet_ForPropertyGetAssignment_ReturnsResults()
5757
{
5858
var expectedResultCount = 1;
5959
var input = @"
60-
Private example As MyObject
60+
Private m_example As MyObject
6161
Public Property Get Example() As MyObject
62-
Example = example
62+
Example = m_example
6363
End Property
6464
";
6565
var expectedCode =
6666
@"
67-
Private example As MyObject
67+
Private m_example As MyObject
6868
Public Property Get Example() As MyObject
69-
Set Example = example
69+
Set Example = m_example
7070
End Property
7171
";
7272

0 commit comments

Comments
 (0)