== Why is this an issue?

:operationName: method

include::../description.adoc[]

=== Exceptions

The following empty methods are considered compliant:

* empty `Overridable` methods, as the implementation might not be required in the base class
* empty methods that override a `MustOverride` method as the implementation is mandatory for child class
* empty overrides in test assemblies for mocking purposes

== How to fix it

=== Code examples

==== Noncompliant code example

[source,vbnet,diff-id=1,diff-type=noncompliant]
----
Sub ShouldNotBeEmpty()  ' Noncompliant - method is empty
End Sub

Sub NotImplementedYet()  ' Noncompliant - method is empty
End Sub

Sub WillNeverBeImplemented()  ' Noncompliant - method is empty
End Sub

Sub EmptyOnPurpose()  ' Noncompliant - method is empty
End Sub
----

==== Compliant solution

[source,vbnet,diff-id=1,diff-type=compliant]
----
Sub ShouldNotBeEmpty()
    DoSomething()
End Sub

Sub NotImplementedYet()
    Throw New NotImplementedException
End Sub

Sub WillNeverBeImplemented()
    Throw New NotSupportedException
End Sub

Sub EmptyOnPurpose()
    ' Do nothing because of X
End Sub
----

ifdef::env-github,rspecator-view[]

'''
== Implementation Specification
(visible only on this page)

=== Message

Add a nested comment explaining why this method is empty, throw a NotSupportedException or complete the implementation.


'''
== Comments And Links
(visible only on this page)

include::../comments-and-links.adoc[]

endif::env-github,rspecator-view[]
