Rename setTypeHint() to setType()

To align with modern terminology -- we don't like calling these
type hints anymore. Old method name remains, marked as @deprecated.
This commit is contained in:
Nikita Popov 2018-07-22 21:41:21 +02:00
parent 4d6825c460
commit 41408081d7
4 changed files with 27 additions and 9 deletions

View File

@ -16,6 +16,11 @@ Version 4.0.4-dev
* Passing a string with a leading backslash to the `Name` constructor will now throw an exception. * Passing a string with a leading backslash to the `Name` constructor will now throw an exception.
Most likely a use of `Name\FullyQualified` was intended. Most likely a use of `Name\FullyQualified` was intended.
### Deprecated
* `Builder\Param::setTypeHint()` has been deprecated in favor of the newly introduced
`Builder\Param::setType()`.
Version 4.0.3 (2018-07-15) Version 4.0.3 (2018-07-15)
-------------------------- --------------------------

View File

@ -42,13 +42,13 @@ class Param implements PhpParser\Builder
} }
/** /**
* Sets type hint for the parameter. * Sets type for the parameter.
* *
* @param string|Node\Name|Node\NullableType $type Type hint to use * @param string|Node\Name|Node\NullableType $type Parameter type
* *
* @return $this The builder instance (for fluid interface) * @return $this The builder instance (for fluid interface)
*/ */
public function setTypeHint($type) { public function setType($type) {
$this->type = BuilderHelpers::normalizeType($type); $this->type = BuilderHelpers::normalizeType($type);
if ($this->type == 'void') { if ($this->type == 'void') {
throw new \LogicException('Parameter type cannot be void'); throw new \LogicException('Parameter type cannot be void');
@ -57,6 +57,19 @@ class Param implements PhpParser\Builder
return $this; return $this;
} }
/**
* Sets type for the parameter.
*
* @param string|Node\Name|Node\NullableType $type Parameter type
*
* @return $this The builder instance (for fluid interface)
*
* @deprecated Use setType() instead
*/
public function setTypeHint($type) {
return $this->setType($type);
}
/** /**
* Make the parameter accept the value by reference. * Make the parameter accept the value by reference.
* *

View File

@ -80,9 +80,9 @@ class ParamTest extends TestCase
} }
/** /**
* @dataProvider provideTestTypeHints * @dataProvider provideTestTypes
*/ */
public function testTypeHints($typeHint, $expectedType) { public function testTypes($typeHint, $expectedType) {
$node = $this->createParamBuilder('test') $node = $this->createParamBuilder('test')
->setTypeHint($typeHint) ->setTypeHint($typeHint)
->getNode() ->getNode()
@ -100,7 +100,7 @@ class ParamTest extends TestCase
$this->assertEquals($expectedType, $type); $this->assertEquals($expectedType, $type);
} }
public function provideTestTypeHints() { public function provideTestTypes() {
return [ return [
['array', new Node\Identifier('array')], ['array', new Node\Identifier('array')],
['callable', new Node\Identifier('callable')], ['callable', new Node\Identifier('callable')],
@ -134,7 +134,7 @@ class ParamTest extends TestCase
* @expectedExceptionMessage Parameter type cannot be void * @expectedExceptionMessage Parameter type cannot be void
*/ */
public function testVoidTypeError() { public function testVoidTypeError() {
$this->createParamBuilder('test')->setTypeHint('void'); $this->createParamBuilder('test')->setType('void');
} }
/** /**
@ -142,7 +142,7 @@ class ParamTest extends TestCase
* @expectedExceptionMessage Type must be a string, or an instance of Name, Identifier or NullableType * @expectedExceptionMessage Type must be a string, or an instance of Name, Identifier or NullableType
*/ */
public function testInvalidTypeError() { public function testInvalidTypeError() {
$this->createParamBuilder('test')->setTypeHint(new \stdClass); $this->createParamBuilder('test')->setType(new \stdClass);
} }
public function testByRef() { public function testByRef() {

View File

@ -276,7 +276,7 @@ class BuilderFactoryTest extends TestCase
->addStmt($factory->method('someMethod') ->addStmt($factory->method('someMethod')
->makePublic() ->makePublic()
->makeAbstract() ->makeAbstract()
->addParam($factory->param('someParam')->setTypeHint('SomeClass')) ->addParam($factory->param('someParam')->setType('SomeClass'))
->setDocComment('/** ->setDocComment('/**
* This method does something. * This method does something.
* *