include::../description.adoc[]

== Noncompliant Code Example

----
var name = "Bob"    // Noncompliant

func doSomething() {   // Noncompliant
  //...
}

class MyClass {
    //...
}
----

== Compliant Solution

----
public class MyClass {
  public static var name = "Bob"

  public class func doSomething() {              // Compliant
    //...
  }
  //...
}
----

== Exceptions

The operator function is a function with a name that matches the operator to be overloaded. Because such functions can only be defined in a global scope, they are ignored by this rule.

----
public class Vector2D {
    var x = 0.0, y = 0.0
    // ...
}

func + (left: Vector2D, right: Vector2D) -> Vector2D {
    return Vector2D(x: left.x + right.x, y: left.y + right.y)
}
----

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

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

include::message.adoc[]

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

include::comments-and-links.adoc[]
endif::env-github,rspecator-view[]
