*/ public static function getClassLikeNames() : array { return ['Ns\Foo']; } public static function doesPropertyExist( string $fq_classlike_name, string $property_name, bool $read_mode, ?StatementsSource $source = null, ?Context $context = null, ?CodeLocation $code_location = null ): ?bool { return $property_name === 'magic_property'; } public static function isPropertyVisible( StatementsSource $source, string $fq_classlike_name, string $property_name, bool $read_mode, ?Context $context = null, ?CodeLocation $code_location = null ): ?bool { return true; } public static function getPropertyType( string $fq_classlike_name, string $property_name, bool $read_mode, ?StatementsSource $source = null, ?Context $context = null ): ?Type\Union { return Type::getString(); } }