1
0
Fork 0

Rename $stmts to $sourceFileNode everywhere

The root node is now a SourceFileNode, not an array
pull/398/head
Felix Becker 2017-06-10 21:36:16 +02:00
parent 4c1d7bd1bc
commit fe7e9d5800
3 changed files with 27 additions and 27 deletions

View File

@ -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;
}

View File

@ -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;
}
}

View File

@ -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);
}