Page Menu
Home
WickedGov Phorge
Search
Configure Global Search
Log In
Files
F1430836
FutureUnionType.php
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
FutureUnionType.php
View Options
<?php
declare
(
strict_types
=
1
);
namespace
Phan\Language
;
use
ast\Node
;
use
Phan\AST\UnionTypeVisitor
;
use
Phan\CodeBase
;
use
Phan\Exception\IssueException
;
/**
* A FutureUnionType is a UnionType that is lazily loaded.
* Call `get()` in order force the type to be figured.
*/
class
FutureUnionType
{
/** @var CodeBase The code base within which we're operating */
private
$code_base
;
/** @var Context the context from which we're fetching types for $this->node */
private
$context
;
/** @var Node|string|int|bool|float the node which we will be fetching the type of. */
private
$node
;
/**
* @param CodeBase $code_base
* @param Context $context
* @param Node|string|int|bool|float $node
*/
public
function
__construct
(
CodeBase
$code_base
,
Context
$context
,
$node
)
{
$this
->
code_base
=
$code_base
;
$this
->
context
=
$context
;
$this
->
node
=
$node
;
}
/**
* Force the future to figure out the type of the
* given object or throw an IssueException if it
* is unable to do so
*
* @return UnionType
* The type of the future
*
* @throws IssueException
* An exception is thrown if we are unable to determine
* the type at the time this method is called
*/
public
function
get
():
UnionType
{
$this
->
context
->
clearCachedUnionTypes
();
return
UnionTypeVisitor
::
unionTypeFromNode
(
$this
->
code_base
,
$this
->
context
,
$this
->
node
,
false
);
}
/**
* Gets the codebase singleton which created this FutureUnionType.
* (used to resolve class references, constants, etc.)
* @internal (May rethink exposing the codebase in the future)
*/
public
function
getCodebase
():
CodeBase
{
return
$this
->
code_base
;
}
/**
* Gets the context in which this FutureUnionType was created
* (used to resolve class references, constants, etc.)
* @internal (May rethink exposing the codebase in the future)
*/
public
function
getContext
():
Context
{
return
$this
->
context
;
}
/**
* Gets the node which this is based on
* @return Node|string|int|bool|float
*/
public
function
getNode
()
{
return
$this
->
node
;
}
}
File Metadata
Details
Attached
Mime Type
text/x-php
Expires
Sat, May 16, 19:39 (3 h, 57 m)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
1d/f5/cff1c24a6e4de9c93942d2dc1024
Default Alt Text
FutureUnionType.php (2 KB)
Attached To
Mode
rMWPROD MediaWiki Production
Attached
Detach File
Event Timeline
Log In to Comment