1<?php 2 3namespace Prophecy\Doubler\Generator; 4 5/** 6 * Tells whether a keyword refers to a class or to a built-in type for the 7 * current version of php 8 */ 9final class TypeHintReference 10{ 11 public function isBuiltInParamTypeHint($type) 12 { 13 switch ($type) { 14 case 'self': 15 case 'array': 16 return true; 17 18 case 'callable': 19 return PHP_VERSION_ID >= 50400; 20 21 case 'bool': 22 case 'float': 23 case 'int': 24 case 'string': 25 return PHP_VERSION_ID >= 70000; 26 27 case 'iterable': 28 return PHP_VERSION_ID >= 70100; 29 30 case 'object': 31 return PHP_VERSION_ID >= 70200; 32 33 default: 34 return false; 35 } 36 } 37 38 public function isBuiltInReturnTypeHint($type) 39 { 40 if ($type === 'void') { 41 return PHP_VERSION_ID >= 70100; 42 } 43 44 return $this->isBuiltInParamTypeHint($type); 45 } 46} 47