Even though this is syntactically correct, the void return type should not be used in the signature of a constructor. Indeed some developers might be confused by this syntax, believing that the constructor is in fact a standard function.

Noncompliant Code Example

public class Foo
{
  public function Foo() : void
  {...}
}

Compliant Solution

public class Foo
{
  public function Foo()
  {...}
}