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 * The AST of the document
* *
* @var Node * @var Node\SourceFileNode
*/ */
private $stmts; private $sourceFileNode;
/** /**
* Map from fully qualified name (FQN) to Definition * Map from fully qualified name (FQN) to Definition
@ -172,7 +172,7 @@ class PhpDocument
$this->index->addReferenceUri($fqn, $this->uri); $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 * 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) public function getNodeAtPosition(Position $position)
{ {
if ($this->stmts === null) { if ($this->sourceFileNode === null) {
return null; return null;
} }
$offset = $position->toOffset($this->stmts->getFileContents()); $offset = $position->toOffset($this->sourceFileNode->getFileContents());
$node = $this->stmts->getDescendantNodeAtPosition($offset); $node = $this->sourceFileNode->getDescendantNodeAtPosition($offset);
if ($node !== null && $node->getStart() > $offset) { if ($node !== null && $node->getStart() > $offset) {
return null; return null;
} }

View File

@ -15,8 +15,8 @@ class TreeAnalyzer
/** @var PhpParser\Parser */ /** @var PhpParser\Parser */
private $parser; private $parser;
/** @var Node */ /** @var Node\SourceFileNode */
private $stmts; private $sourceFileNode;
/** @var Diagnostic[] */ /** @var Diagnostic[] */
private $diagnostics; private $diagnostics;
@ -46,17 +46,17 @@ class TreeAnalyzer
$this->docBlockFactory = $docBlockFactory; $this->docBlockFactory = $docBlockFactory;
$this->definitionResolver = $definitionResolver; $this->definitionResolver = $definitionResolver;
$this->content = $content; $this->content = $content;
$this->stmts = $this->parser->parseSourceFile($content, $uri); $this->sourceFileNode = $this->parser->parseSourceFile($content, $uri);
// TODO - docblock errors // 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) { foreach ($sourceFileNode::CHILD_NAMES as $name) {
$node = $stmts->$name; $node = $sourceFileNode->$name;
if ($node === null) { if ($node === null) {
continue; 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; $parser = new PhpParser\Parser;
$doc = new MockPhpDocument; $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; $index = new Index;
$definitionResolver = new DefinitionResolver($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); $this->assertInstanceOf(\phpDocumentor\Reflection\Types\Boolean::class, $def->type);
} }
@ -27,11 +27,11 @@ class DefinitionResolverTest extends TestCase
{ {
$parser = new PhpParser\Parser; $parser = new PhpParser\Parser;
$doc = new MockPhpDocument; $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; $index = new Index;
$definitionResolver = new DefinitionResolver($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); $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 // define('XXX') (only one argument) must not introduce a new symbol
$parser = new PhpParser\Parser; $parser = new PhpParser\Parser;
$doc = new MockPhpDocument; $doc = new MockPhpDocument;
$stmts = $parser->parseSourceFile("<?php\ndefine('TEST_DEFINE');", $doc->getUri()); $sourceFileNode = $parser->parseSourceFile("<?php\ndefine('TEST_DEFINE');", $doc->getUri());
$index = new Index; $index = new Index;
$definitionResolver = new DefinitionResolver($index); $definitionResolver = new DefinitionResolver($index);
$fqn = $definitionResolver->getDefinedFqn($stmts->statementList[1]->expression); $fqn = $definitionResolver->getDefinedFqn($sourceFileNode->statementList[1]->expression);
$this->assertNull($fqn); $this->assertNull($fqn);
} }
@ -54,11 +54,11 @@ class DefinitionResolverTest extends TestCase
{ {
$parser = new PhpParser\Parser; $parser = new PhpParser\Parser;
$doc = new MockPhpDocument; $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; $index = new Index;
$definitionResolver = new DefinitionResolver($index); $definitionResolver = new DefinitionResolver($index);
$fqn = $definitionResolver->getDefinedFqn($stmts->statementList[1]->expression); $fqn = $definitionResolver->getDefinedFqn($sourceFileNode->statementList[1]->expression);
$this->assertEquals('TEST_DEFINE', $fqn); $this->assertEquals('TEST_DEFINE', $fqn);
} }