original_string: protected function createProperty($name, Type $type, $namespace, $default = null)
      {
          $propertyName = $this->getNaming()->getPropertyName($name);
          $property     = new Stmt\PropertyProperty($propertyName);
  
          if ($default !== null) {
              $property->default = new Expr\ConstFetch(new Name($default));
          }
  
          return new Stmt\Property(Stmt\Class_::MODIFIER_PROTECTED, [
              $property
          ], [
              'comments' => [$this->createPropertyDoc($type, $namespace)]
          ]);
      }
code: protected function createProperty($name, Type $type, $namespace, $default = null)
      {
          $propertyName = $this->getNaming()->getPropertyName($name);
          $property     = new Stmt\PropertyProperty($propertyName);
  
          if ($default !== null) {
              $property->default = new Expr\ConstFetch(new Name($default));
          }
  
          return new Stmt\Property(Stmt\Class_::MODIFIER_PROTECTED, [
              $property
          ], [
              'comments' => [$this->createPropertyDoc($type, $namespace)]
          ]);
      }
code_tokens: protected function createProperty ( $ name , Type $ type , $ namespace , $ default = null ) { $ propertyName = $ this -> getNaming ( ) -> getPropertyName ( $ name ) ; $ property = new Stmt \ PropertyProperty ( $ propertyName ) ; if ( $ default !== null ) { $ property -> default = new Expr \ ConstFetch ( new Name ( $ default ) ) ; } return new Stmt \ Property ( Stmt \ Class_ :: MODIFIER_PROTECTED , [ $ property ] , [ 'comments' => [ $ this -> createPropertyDoc ( $ type , $ namespace ) ] ] ) ; }
docstring: Return a property stmt
  
  @param string      $name
  @param Type        $type
  @param string|null $default
  
  @return Stmt\Property
docstring_tokens: Return a property stmt