Rename $stmts to $sourceFileNode everywhere
The root node is now a SourceFileNode, not an arraypull/398/head
parent
4c1d7bd1bc
commit
fe7e9d5800
|
@ -56,9 +56,9 @@ class PhpDocument
|
|||
/**
|
||||
* The AST of the document
|
||||
*
|
||||
* @var Node
|
||||
* @var Node\SourceFileNode
|
||||
*/
|
||||
private $stmts;
|
||||
private $sourceFileNode;
|
||||
|
||||
/**
|
||||
* Map from fully qualified name (FQN) to Definition
|
||||
|
@ -172,7 +172,7 @@ class PhpDocument
|
|||
$this->index->addReferenceUri($fqn, $this->uri);
|
||||
}
|
||||
|
||||
$this->stmts = $treeAnalyzer->getStmts();
|
||||
$this->sourceFileNode = $treeAnalyzer->getSourceFileNode();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -221,11 +221,11 @@ class PhpDocument
|
|||
/**
|
||||
* Returns the AST of the document
|
||||
*
|
||||
* @return Node | null
|
||||
* @return Node\SourceFileNode|null
|
||||
*/
|
||||
public function getStmts()
|
||||
public function getSourceFileNode()
|
||||
{
|
||||
return $this->stmts;
|
||||
return $this->sourceFileNode;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -236,12 +236,12 @@ class PhpDocument
|
|||
*/
|
||||
public function getNodeAtPosition(Position $position)
|
||||
{
|
||||
if ($this->stmts === null) {
|
||||
if ($this->sourceFileNode === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$offset = $position->toOffset($this->stmts->getFileContents());
|
||||
$node = $this->stmts->getDescendantNodeAtPosition($offset);
|
||||
$offset = $position->toOffset($this->sourceFileNode->getFileContents());
|
||||
$node = $this->sourceFileNode->getDescendantNodeAtPosition($offset);
|
||||
if ($node !== null && $node->getStart() > $offset) {
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -15,8 +15,8 @@ class TreeAnalyzer
|
|||
/** @var PhpParser\Parser */
|
||||
private $parser;
|
||||
|
||||
/** @var Node */
|
||||
private $stmts;
|
||||
/** @var Node\SourceFileNode */
|
||||
private $sourceFileNode;
|
||||
|
||||
/** @var Diagnostic[] */
|
||||
private $diagnostics;
|
||||
|
@ -46,17 +46,17 @@ class TreeAnalyzer
|
|||
$this->docBlockFactory = $docBlockFactory;
|
||||
$this->definitionResolver = $definitionResolver;
|
||||
$this->content = $content;
|
||||
$this->stmts = $this->parser->parseSourceFile($content, $uri);
|
||||
$this->sourceFileNode = $this->parser->parseSourceFile($content, $uri);
|
||||
|
||||
// TODO - docblock errors
|
||||
|
||||
$this->collectDefinitionsAndReferences($this->stmts);
|
||||
$this->collectDefinitionsAndReferences($this->sourceFileNode);
|
||||
}
|
||||
|
||||
private function collectDefinitionsAndReferences(Node $stmts)
|
||||
private function collectDefinitionsAndReferences(Node $sourceFileNode)
|
||||
{
|
||||
foreach ($stmts::CHILD_NAMES as $name) {
|
||||
$node = $stmts->$name;
|
||||
foreach ($sourceFileNode::CHILD_NAMES as $name) {
|
||||
$node = $sourceFileNode->$name;
|
||||
|
||||
if ($node === null) {
|
||||
continue;
|
||||
|
@ -200,10 +200,10 @@ class TreeAnalyzer
|
|||
}
|
||||
|
||||
/**
|
||||
* @return Node[]
|
||||
* @return Node\SourceFileNode
|
||||
*/
|
||||
public function getStmts()
|
||||
public function getSourceFileNode()
|
||||
{
|
||||
return $this->stmts;
|
||||
return $this->sourceFileNode;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,11 +14,11 @@ class DefinitionResolverTest extends TestCase
|
|||
{
|
||||
$parser = new PhpParser\Parser;
|
||||
$doc = new MockPhpDocument;
|
||||
$stmts = $parser->parseSourceFile("<?php\ndefine('TEST_DEFINE', true);", $doc->getUri());
|
||||
$sourceFileNode = $parser->parseSourceFile("<?php\ndefine('TEST_DEFINE', true);", $doc->getUri());
|
||||
|
||||
$index = new Index;
|
||||
$definitionResolver = new DefinitionResolver($index);
|
||||
$def = $definitionResolver->createDefinitionFromNode($stmts->statementList[1]->expression, '\TEST_DEFINE');
|
||||
$def = $definitionResolver->createDefinitionFromNode($sourceFileNode->statementList[1]->expression, '\TEST_DEFINE');
|
||||
|
||||
$this->assertInstanceOf(\phpDocumentor\Reflection\Types\Boolean::class, $def->type);
|
||||
}
|
||||
|
@ -27,11 +27,11 @@ class DefinitionResolverTest extends TestCase
|
|||
{
|
||||
$parser = new PhpParser\Parser;
|
||||
$doc = new MockPhpDocument;
|
||||
$stmts = $parser->parseSourceFile("<?php\ndefine('TEST_DEFINE', true);", $doc->getUri());
|
||||
$sourceFileNode = $parser->parseSourceFile("<?php\ndefine('TEST_DEFINE', true);", $doc->getUri());
|
||||
|
||||
$index = new Index;
|
||||
$definitionResolver = new DefinitionResolver($index);
|
||||
$type = $definitionResolver->getTypeFromNode($stmts->statementList[1]->expression);
|
||||
$type = $definitionResolver->getTypeFromNode($sourceFileNode->statementList[1]->expression);
|
||||
|
||||
$this->assertInstanceOf(\phpDocumentor\Reflection\Types\Boolean::class, $type);
|
||||
}
|
||||
|
@ -41,11 +41,11 @@ class DefinitionResolverTest extends TestCase
|
|||
// define('XXX') (only one argument) must not introduce a new symbol
|
||||
$parser = new PhpParser\Parser;
|
||||
$doc = new MockPhpDocument;
|
||||
$stmts = $parser->parseSourceFile("<?php\ndefine('TEST_DEFINE');", $doc->getUri());
|
||||
$sourceFileNode = $parser->parseSourceFile("<?php\ndefine('TEST_DEFINE');", $doc->getUri());
|
||||
|
||||
$index = new Index;
|
||||
$definitionResolver = new DefinitionResolver($index);
|
||||
$fqn = $definitionResolver->getDefinedFqn($stmts->statementList[1]->expression);
|
||||
$fqn = $definitionResolver->getDefinedFqn($sourceFileNode->statementList[1]->expression);
|
||||
|
||||
$this->assertNull($fqn);
|
||||
}
|
||||
|
@ -54,11 +54,11 @@ class DefinitionResolverTest extends TestCase
|
|||
{
|
||||
$parser = new PhpParser\Parser;
|
||||
$doc = new MockPhpDocument;
|
||||
$stmts = $parser->parseSourceFile("<?php\ndefine('TEST_DEFINE', true);", $doc->getUri());
|
||||
$sourceFileNode = $parser->parseSourceFile("<?php\ndefine('TEST_DEFINE', true);", $doc->getUri());
|
||||
|
||||
$index = new Index;
|
||||
$definitionResolver = new DefinitionResolver($index);
|
||||
$fqn = $definitionResolver->getDefinedFqn($stmts->statementList[1]->expression);
|
||||
$fqn = $definitionResolver->getDefinedFqn($sourceFileNode->statementList[1]->expression);
|
||||
|
||||
$this->assertEquals('TEST_DEFINE', $fqn);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue