Skip to content

Commit ed5bf5a

Browse files
authored
Merge pull request #5136 from rubberduck-vba/xmldocs
Fixes xmldocs for new inspections
2 parents b080934 + 5bcd674 commit ed5bf5a

File tree

3 files changed

+137
-131
lines changed

3 files changed

+137
-131
lines changed

Rubberduck.CodeAnalysis/Inspections/Concrete/ArgumentWithIncompatibleObjectTypeInspection.cs

Lines changed: 63 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -15,73 +15,73 @@
1515

1616
namespace Rubberduck.CodeAnalysis.Inspections.Concrete
1717
{
18+
/// <summary>
19+
/// Locates arguments passed to functions or procedures for object parameters which the do not have a compatible declared type.
20+
/// </summary>
21+
/// <why>
22+
/// The VBA compiler does not check whether different object types are compatible. Instead there is a runtime error whenever the types are incompatible.
23+
/// </why>
24+
/// <example hasResult="true">
25+
/// <![CDATA[
26+
/// IInterface:
27+
///
28+
/// Public Sub DoSomething()
29+
/// End Sub
30+
///
31+
/// ------------------------------
32+
/// Class1:
33+
///
34+
///'No Implements IInterface
35+
///
36+
/// Public Sub DoSomething()
37+
/// End Sub
38+
///
39+
/// ------------------------------
40+
/// Module1:
41+
///
42+
/// Public Sub DoIt()
43+
/// Dim cls As Class1
44+
/// Set cls = New Class1
45+
/// Foo cls
46+
/// End Sub
47+
///
48+
/// Public Sub Foo(cls As IInterface)
49+
/// End Sub
50+
/// ]]>
51+
/// </example>
52+
/// <example hasResult="false">
53+
/// <![CDATA[
54+
/// IInterface:
55+
///
56+
/// Public Sub DoSomething()
57+
/// End Sub
58+
///
59+
/// ------------------------------
60+
/// Class1:
61+
///
62+
/// Implements IInterface
63+
///
64+
/// Private Sub IInterface_DoSomething()
65+
/// End Sub
66+
///
67+
/// ------------------------------
68+
/// Module1:
69+
///
70+
/// Public Sub DoIt()
71+
/// Dim cls As Class1
72+
/// Set cls = New Class1
73+
/// Foo cls
74+
/// End Sub
75+
///
76+
/// Public Sub Foo(cls As IInterface)
77+
/// End Sub
78+
/// ]]>
79+
/// </example>
1880
public class ArgumentWithIncompatibleObjectTypeInspection : InspectionBase
1981
{
2082
private readonly IDeclarationFinderProvider _declarationFinderProvider;
2183
private readonly ISetTypeResolver _setTypeResolver;
2284

23-
/// <summary>
24-
/// Locates arguments passed to functions or procedures for object parameters which the do not have a compatible declared type.
25-
/// </summary>
26-
/// <why>
27-
/// The VBA compiler does not check whether different object types are compatible. Instead there is a runtime error whenever the types are incompatible.
28-
/// </why>
29-
/// <example hasResult="true">
30-
/// <![CDATA[
31-
/// IInterface:
32-
///
33-
/// Public Sub DoSomething()
34-
/// End Sub
35-
///
36-
/// ------------------------------
37-
/// Class1:
38-
///
39-
///'No Implements IInterface
40-
///
41-
/// Public Sub DoSomething()
42-
/// End Sub
43-
///
44-
/// ------------------------------
45-
/// Module1:
46-
///
47-
/// Public Sub DoIt()
48-
/// Dim cls As Class1
49-
/// Set cls = New Class1
50-
/// Foo cls
51-
/// End Sub
52-
///
53-
/// Public Sub Foo(cls As IInterface)
54-
/// End Sub
55-
/// ]]>
56-
/// </example>
57-
/// <example hasResult="false">
58-
/// <![CDATA[
59-
/// IInterface:
60-
///
61-
/// Public Sub DoSomething()
62-
/// End Sub
63-
///
64-
/// ------------------------------
65-
/// Class1:
66-
///
67-
/// Implements IInterface
68-
///
69-
/// Private Sub IInterface_DoSomething()
70-
/// End Sub
71-
///
72-
/// ------------------------------
73-
/// Module1:
74-
///
75-
/// Public Sub DoIt()
76-
/// Dim cls As Class1
77-
/// Set cls = New Class1
78-
/// Foo cls
79-
/// End Sub
80-
///
81-
/// Public Sub Foo(cls As IInterface)
82-
/// End Sub
83-
/// ]]>
84-
/// </example>
8585
public ArgumentWithIncompatibleObjectTypeInspection(RubberduckParserState state, ISetTypeResolver setTypeResolver)
8686
: base(state)
8787
{
@@ -191,4 +191,4 @@ private string ResultDescription(IdentifierReference argumentReference, string a
191191
return string.Format(InspectionResults.SetAssignmentWithIncompatibleObjectTypeInspection, parameterName, parameterTypeName, argumentExpression, argumentTypeName);
192192
}
193193
}
194-
}
194+
}

Rubberduck.CodeAnalysis/Inspections/Concrete/ImplementedInterfaceMemberInspection.cs

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,28 @@
1111
namespace Rubberduck.Inspections.Concrete
1212
{
1313
/// <summary>
14-
/// Identifies implemented members of class modules that are used as interfaces.
14+
/// Identifies members of class modules that are used as interfaces, but that have a concrete implementation.
1515
/// </summary>
1616
/// <why>
17-
/// Interfaces provide a unified programmatic access to different objects, and therefore are rarely instantiated as concrete objects.
17+
/// Interfaces provide an abstract, unified programmatic access to different objects; concrete implementations of their members should be in a separate module that 'Implements' the interface.
1818
/// </why>
1919
/// <example hasResults="false">
2020
/// <![CDATA[
21-
/// Sub Foo()
22-
/// ' ...
21+
/// Option Explicit
22+
/// '@Interface
23+
///
24+
/// Public Sub DoSomething()
25+
/// ' empty interface stub
2326
/// End Sub
2427
/// ]]>
2528
/// </example>
2629
/// <example hasResults="true">
2730
/// <![CDATA[
28-
/// Sub Foo()
29-
/// MsgBox "?"
31+
/// Option Explicit
32+
/// '@Interface
33+
///
34+
/// Public Sub DoSomething()
35+
/// MsgBox "Hello from interface!"
3036
/// End Sub
3137
/// ]]>
3238
/// </example>
@@ -51,4 +57,4 @@ protected override IEnumerable<IInspectionResult> DoGetInspectionResults()
5157
result));
5258
}
5359
}
54-
}
60+
}

Rubberduck.CodeAnalysis/Inspections/Concrete/SetAssignmentWithIncompatibleObjectTypeInspection.cs

Lines changed: 61 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -16,71 +16,71 @@
1616

1717
namespace Rubberduck.CodeAnalysis.Inspections.Concrete
1818
{
19+
/// <summary>
20+
/// Locates assignments to object variables for which the RHS does not have a compatible declared type.
21+
/// </summary>
22+
/// <why>
23+
/// The VBA compiler does not check whether different object types are compatible. Instead there is a runtime error whenever the types are incompatible.
24+
/// </why>
25+
/// <example hasResult="true">
26+
/// <![CDATA[
27+
/// IInterface:
28+
///
29+
/// Public Sub DoSomething()
30+
/// End Sub
31+
///
32+
/// ------------------------------
33+
/// Class1:
34+
///
35+
///'No Implements IInterface
36+
///
37+
/// Public Sub DoSomething()
38+
/// End Sub
39+
///
40+
/// ------------------------------
41+
/// Module1:
42+
///
43+
/// Public Sub DoIt()
44+
/// Dim cls As Class1
45+
/// Dim intrfc As IInterface
46+
///
47+
/// Set cls = New Class1
48+
/// Set intrfc = cls
49+
/// End Sub
50+
/// ]]>
51+
/// </example>
52+
/// <example hasResult="false">
53+
/// <![CDATA[
54+
/// IInterface:
55+
///
56+
/// Public Sub DoSomething()
57+
/// End Sub
58+
///
59+
/// ------------------------------
60+
/// Class1:
61+
///
62+
/// Implements IInterface
63+
///
64+
/// Private Sub IInterface_DoSomething()
65+
/// End Sub
66+
///
67+
/// ------------------------------
68+
/// Module1:
69+
///
70+
/// Public Sub DoIt()
71+
/// Dim cls As Class1
72+
/// Dim intrfc As IInterface
73+
///
74+
/// Set cls = New Class1
75+
/// Set intrfc = cls
76+
/// End Sub
77+
/// ]]>
78+
/// </example>
1979
public class SetAssignmentWithIncompatibleObjectTypeInspection : InspectionBase
2080
{
2181
private readonly IDeclarationFinderProvider _declarationFinderProvider;
2282
private readonly ISetTypeResolver _setTypeResolver;
2383

24-
/// <summary>
25-
/// Locates assignments to object variables for which the RHS does not have a compatible declared type.
26-
/// </summary>
27-
/// <why>
28-
/// The VBA compiler does not check whether different object types are compatible. Instead there is a runtime error whenever the types are incompatible.
29-
/// </why>
30-
/// <example hasResult="true">
31-
/// <![CDATA[
32-
/// IInterface:
33-
///
34-
/// Public Sub DoSomething()
35-
/// End Sub
36-
///
37-
/// ------------------------------
38-
/// Class1:
39-
///
40-
///'No Implements IInterface
41-
///
42-
/// Public Sub DoSomething()
43-
/// End Sub
44-
///
45-
/// ------------------------------
46-
/// Module1:
47-
///
48-
/// Public Sub DoIt()
49-
/// Dim cls As Class1
50-
/// Dim intrfc As IInterface
51-
///
52-
/// Set cls = New Class1
53-
/// Set intrfc = cls
54-
/// End Sub
55-
/// ]]>
56-
/// </example>
57-
/// <example hasResult="false">
58-
/// <![CDATA[
59-
/// IInterface:
60-
///
61-
/// Public Sub DoSomething()
62-
/// End Sub
63-
///
64-
/// ------------------------------
65-
/// Class1:
66-
///
67-
/// Implements IInterface
68-
///
69-
/// Private Sub IInterface_DoSomething()
70-
/// End Sub
71-
///
72-
/// ------------------------------
73-
/// Module1:
74-
///
75-
/// Public Sub DoIt()
76-
/// Dim cls As Class1
77-
/// Dim intrfc As IInterface
78-
///
79-
/// Set cls = New Class1
80-
/// Set intrfc = cls
81-
/// End Sub
82-
/// ]]>
83-
/// </example>
8484
public SetAssignmentWithIncompatibleObjectTypeInspection(RubberduckParserState state, ISetTypeResolver setTypeResolver)
8585
: base(state)
8686
{
@@ -192,4 +192,4 @@ private string ResultDescription(IdentifierReference setAssignment, string assig
192192
return string.Format(InspectionResults.SetAssignmentWithIncompatibleObjectTypeInspection, declarationName, variableTypeName, assignedTypeName);
193193
}
194194
}
195-
}
195+
}

0 commit comments

Comments
 (0)