[Console] Return $this in phpdocs in chained Question methods

| Q             | A
| ------------- | ---
| Fixed tickets | -
| License       | MIT

So any IDE (or Scrutinizer etc) can understand that it isn't necessarily a Question instance, but when called on ChoiceQuestion or ConfirmationQuestion, it will return that class also.

This probably could be done to a lot of other chained functions, but I wanted to know if you are okay with this, and if it's okay to submit to 2.5, or should it be at master instead?


From the PHPdoc PSR draft:

 > 13. 'self', the element to which this type applies is of the same Class as
 >    which the documented element is originally contained.
 >
 >    For example:
 >
 >        Method C() is contained in class A. The DocBlock states
 >        that its return value is of type `self`. As such method C()
 >        returns an instance of class A.
 >
 >    This may lead to confusing situations when inheritance is involved.
 >
 >    For example (previous example situation still applies):
 >
 >        Class B extends Class A and does not redefine method C(). As such
 >        it is possible to invoke method C() from class B.
 >
 >    In this situation ambiguity may arise as `self` could be interpreted as
 >    either class A or B. In these cases `self` MUST be interpreted as being
 >    an instance of the Class where the DocBlock containing the `self` type
 >    is written.
 >
 >    In the examples above `self` MUST always refer to class A, since it is
 >    defined with method C() in class A.
 >
 >    > Due to the above nature it is RECOMMENDED for applications that
 >    > collect and shape this information to show a list of child classes
 >    > with each representation of the class. This would make it obvious
 >    > for the user which classes are acceptable as type.
 >
 > 14. 'static', the element to which this type applies is of the same Class as
 >    which the documented element is contained, or when encountered in a
 >    subclass is of type of that subclass instead of the original class.
 >
 >    This keyword behaves the same way as the 'static' keyword keyword (not
 >    the static property or method modifier) as defined by PHP.
 >
 > 15. '$this', the element to which this type applies is the same exact instance
 >    as the current Class in the given context. As such this type is a stricter
 >    version of 'static' as, in addition, the returned instance must not only
 >    be of the same Class but also the same instance.
 >
 >    This type is often used as return value for methods implementing the
 >    [Fluent Interface][FLUENT] design pattern.