1
0
Fork 0

Improve CompletionProvider (#412)

- Better performance
- More documentation
- Add field to Definition for global namespace fallback

Fixes #380
pull/415/head
Felix Becker 2017-06-16 20:31:13 +02:00 committed by GitHub
parent 663ccd5f23
commit 0e3727a8d6
64 changed files with 353 additions and 86 deletions

View File

@ -0,0 +1,11 @@
<?php
namespace MyNamespace;
class SomeClass
{
public function someMethod()
{
tes
}
}

View File

@ -7,5 +7,7 @@
<exclude name="PSR2.Namespaces.UseDeclaration.MultipleDeclarations"/> <exclude name="PSR2.Namespaces.UseDeclaration.MultipleDeclarations"/>
<exclude name="PSR2.ControlStructures.ElseIfDeclaration.NotAllowed"/> <exclude name="PSR2.ControlStructures.ElseIfDeclaration.NotAllowed"/>
<exclude name="PSR2.ControlStructures.ControlStructureSpacing.SpacingAfterOpenBrace"/> <exclude name="PSR2.ControlStructures.ControlStructureSpacing.SpacingAfterOpenBrace"/>
<exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingBeforeClose"/>
<exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen"/>
</rule> </rule>
</ruleset> </ruleset>

View File

@ -128,6 +128,7 @@ class CompletionProvider
// This can be made much more performant if the tree follows specific invariants. // This can be made much more performant if the tree follows specific invariants.
$node = $doc->getNodeAtPosition($pos); $node = $doc->getNodeAtPosition($pos);
// Get the node at the position under the cursor
$offset = $node === null ? -1 : $pos->toOffset($node->getFileContents()); $offset = $node === null ? -1 : $pos->toOffset($node->getFileContents());
if ( if (
$node !== null $node !== null
@ -148,22 +149,31 @@ class CompletionProvider
$node = $node->parent; $node = $node->parent;
} }
// Inspect the type of expression under the cursor
if ($node === null || $node instanceof Node\Statement\InlineHtml || $pos == new Position(0, 0)) { if ($node === null || $node instanceof Node\Statement\InlineHtml || $pos == new Position(0, 0)) {
// HTML, beginning of file
// Inside HTML and at the beginning of the file, propose <?php
$item = new CompletionItem('<?php', CompletionItemKind::KEYWORD); $item = new CompletionItem('<?php', CompletionItemKind::KEYWORD);
$item->textEdit = new TextEdit( $item->textEdit = new TextEdit(
new Range($pos, $pos), new Range($pos, $pos),
stripStringOverlap($doc->getRange(new Range(new Position(0, 0), $pos)), '<?php') stripStringOverlap($doc->getRange(new Range(new Position(0, 0), $pos)), '<?php')
); );
$list->items[] = $item; $list->items[] = $item;
} /*
VARIABLES */ } elseif (
elseif ( $node instanceof Node\Expression\Variable
$node instanceof Node\Expression\Variable && && !(
!( $node->parent instanceof Node\Expression\ScopedPropertyAccessExpression
$node->parent instanceof Node\Expression\ScopedPropertyAccessExpression && && $node->parent->memberName === $node
$node->parent->memberName === $node) )
) { ) {
// Variables
//
// $|
// $a|
// Find variables, parameters and use statements in the scope // Find variables, parameters and use statements in the scope
$namePrefix = $node->getName() ?? ''; $namePrefix = $node->getName() ?? '';
foreach ($this->suggestVariablesAtNode($node, $namePrefix) as $var) { foreach ($this->suggestVariablesAtNode($node, $namePrefix) as $var) {
@ -178,23 +188,28 @@ class CompletionProvider
); );
$list->items[] = $item; $list->items[] = $item;
} }
} /*
MEMBER ACCESS EXPRESSIONS } elseif ($node instanceof Node\Expression\MemberAccessExpression) {
$a->c# // Member access expressions
$a-># */ //
elseif ($node instanceof Node\Expression\MemberAccessExpression) { // $a->c|
// $a->|
// Multiple prefixes for all possible types
$prefixes = FqnUtilities\getFqnsFromType( $prefixes = FqnUtilities\getFqnsFromType(
$this->definitionResolver->resolveExpressionNodeToType($node->dereferencableExpression) $this->definitionResolver->resolveExpressionNodeToType($node->dereferencableExpression)
); );
// Include parent classes
$prefixes = $this->expandParentFqns($prefixes); $prefixes = $this->expandParentFqns($prefixes);
// Add the object access operator to only get members
foreach ($prefixes as &$prefix) { foreach ($prefixes as &$prefix) {
$prefix .= '->'; $prefix .= '->';
} }
unset($prefix); unset($prefix);
// Collect all definitions that match any of the prefixes
foreach ($this->index->getDefinitions() as $fqn => $def) { foreach ($this->index->getDefinitions() as $fqn => $def) {
foreach ($prefixes as $prefix) { foreach ($prefixes as $prefix) {
if (substr($fqn, 0, strlen($prefix)) === $prefix && !$def->isGlobal) { if (substr($fqn, 0, strlen($prefix)) === $prefix && !$def->isGlobal) {
@ -202,30 +217,35 @@ class CompletionProvider
} }
} }
} }
} /*
SCOPED PROPERTY ACCESS EXPRESSIONS } elseif (
A\B\C::$a#
A\B\C::#
A\B\C::$#
A\B\C::foo#
TODO: $a::# */
elseif (
($scoped = $node->parent) instanceof Node\Expression\ScopedPropertyAccessExpression || ($scoped = $node->parent) instanceof Node\Expression\ScopedPropertyAccessExpression ||
($scoped = $node) instanceof Node\Expression\ScopedPropertyAccessExpression ($scoped = $node) instanceof Node\Expression\ScopedPropertyAccessExpression
) { ) {
// Static class members and constants
//
// A\B\C::$a|
// A\B\C::|
// A\B\C::$|
// A\B\C::foo|
//
// TODO: $a::|
// Resolve all possible types to FQNs
$prefixes = FqnUtilities\getFqnsFromType( $prefixes = FqnUtilities\getFqnsFromType(
$classType = $this->definitionResolver->resolveExpressionNodeToType($scoped->scopeResolutionQualifier) $classType = $this->definitionResolver->resolveExpressionNodeToType($scoped->scopeResolutionQualifier)
); );
// Add parent classes
$prefixes = $this->expandParentFqns($prefixes); $prefixes = $this->expandParentFqns($prefixes);
// Append :: operator to only get static members
foreach ($prefixes as &$prefix) { foreach ($prefixes as &$prefix) {
$prefix .= '::'; $prefix .= '::';
} }
unset($prefix); unset($prefix);
// Collect all definitions that match any of the prefixes
foreach ($this->index->getDefinitions() as $fqn => $def) { foreach ($this->index->getDefinitions() as $fqn => $def) {
foreach ($prefixes as $prefix) { foreach ($prefixes as $prefix) {
if (substr(strtolower($fqn), 0, strlen($prefix)) === strtolower($prefix) && !$def->isGlobal) { if (substr(strtolower($fqn), 0, strlen($prefix)) === strtolower($prefix) && !$def->isGlobal) {
@ -233,83 +253,124 @@ class CompletionProvider
} }
} }
} }
} elseif (ParserHelpers\isConstantFetch($node) ||
($creation = $node->parent) instanceof Node\Expression\ObjectCreationExpression ||
(($creation = $node) instanceof Node\Expression\ObjectCreationExpression)) {
$class = isset($creation) ? $creation->classTypeDesignator : $node;
$prefix = $class instanceof Node\QualifiedName } elseif (
? (string)PhpParser\ResolvedName::buildName($class->nameParts, $class->getFileContents()) ParserHelpers\isConstantFetch($node)
: $class->getText($node->getFileContents()); // Creation gets set in case of an instantiation (`new` expression)
|| ($creation = $node->parent) instanceof Node\Expression\ObjectCreationExpression
|| (($creation = $node) instanceof Node\Expression\ObjectCreationExpression)
) {
// Class instantiations, function calls, constant fetches, class names
//
// new MyCl|
// my_func|
// MY_CONS|
// MyCla|
$namespaceDefinition = $node->getNamespaceDefinition(); // The name Node under the cursor
$nameNode = isset($creation) ? $creation->classTypeDesignator : $node;
list($namespaceImportTable,,) = $node->getImportTablesForCurrentScope(); /** The typed name */
foreach ($namespaceImportTable as $alias => $name) { $prefix = $nameNode instanceof Node\QualifiedName
$namespaceImportTable[$alias] = (string)$name; ? (string)PhpParser\ResolvedName::buildName($nameNode->nameParts, $nameNode->getFileContents())
: $nameNode->getText($node->getFileContents());
$prefixLen = strlen($prefix);
/** Whether the prefix is qualified (contains at least one backslash) */
$isQualified = $nameNode instanceof Node\QualifiedName && $nameNode->isQualifiedName();
/** Whether the prefix is fully qualified (begins with a backslash) */
$isFullyQualified = $nameNode instanceof Node\QualifiedName && $nameNode->isFullyQualifiedName();
/** The closest NamespaceDefinition Node */
$namespaceNode = $node->getNamespaceDefinition();
/** @var string The name of the namespace */
$namespacedPrefix = null;
if ($namespaceNode) {
$namespacedPrefix = (string)PhpParser\ResolvedName::buildName($namespaceNode->name->nameParts, $node->getFileContents()) . '\\' . $prefix;
$namespacedPrefixLen = strlen($namespacedPrefix);
} }
foreach ($this->index->getDefinitions() as $fqn => $def) { // Get the namespace use statements
$fqnStartsWithPrefix = substr($fqn, 0, strlen($prefix)) === $prefix; // TODO: use function statements, use const statements
$fqnContainsPrefix = empty($prefix) || strpos($fqn, $prefix) !== false;
if (($def->canBeInstantiated || ($def->isGlobal && !isset($creation))) && $fqnContainsPrefix) {
if ($namespaceDefinition !== null && $namespaceDefinition->name !== null) {
$namespacePrefix = (string)PhpParser\ResolvedName::buildName($namespaceDefinition->name->nameParts, $node->getFileContents());
$isAliased = false; /** @var string[] $aliases A map from local alias to fully qualified name */
list($aliases,,) = $node->getImportTablesForCurrentScope();
$isNotFullyQualified = !($class instanceof Node\QualifiedName) || !$class->isFullyQualifiedName(); foreach ($aliases as $alias => $name) {
if ($isNotFullyQualified) { $aliases[$alias] = (string)$name;
foreach ($namespaceImportTable as $alias => $name) { }
if (substr($fqn, 0, strlen($name)) === $name) {
$fqn = $alias;
$isAliased = true;
break;
}
}
}
$prefixWithNamespace = $namespacePrefix . "\\" . $prefix; // If there is a prefix that does not start with a slash, suggest `use`d symbols
$fqnMatchesPrefixWithNamespace = substr($fqn, 0, strlen($prefixWithNamespace)) === $prefixWithNamespace; if ($prefix && !$isFullyQualified) {
$isFullyQualifiedAndPrefixMatches = !$isNotFullyQualified && ($fqnStartsWithPrefix || $fqnMatchesPrefixWithNamespace); foreach ($aliases as $alias => $fqn) {
if (!$isFullyQualifiedAndPrefixMatches && !$isAliased) { // Suggest symbols that have been `use`d and match the prefix
if (!array_search($fqn, array_values($namespaceImportTable))) { if (substr($alias, 0, $prefixLen) === $prefix && ($def = $this->index->getDefinition($fqn))) {
if (empty($prefix)) { $list->items[] = CompletionItem::fromDefinition($def);
$fqn = '\\' . $fqn;
} elseif ($fqnMatchesPrefixWithNamespace) {
$fqn = substr($fqn, strlen($namespacePrefix) + 1);
} else {
continue;
}
} else {
continue;
}
}
} elseif ($fqnStartsWithPrefix && $class instanceof Node\QualifiedName && $class->isFullyQualifiedName()) {
$fqn = '\\' . $fqn;
} }
}
}
// Suggest global symbols that either
// - start with the current namespace + prefix, if the Name node is not fully qualified
// - start with just the prefix, if the Name node is fully qualified
foreach ($this->index->getDefinitions() as $fqn => $def) {
$fqnStartsWithPrefix = substr($fqn, 0, $prefixLen) === $prefix;
if (
// Exclude methods, properties etc.
$def->isGlobal
&& (
!$prefix
|| (
// Either not qualified, but a matching prefix with global fallback
($def->roamed && !$isQualified && $fqnStartsWithPrefix)
// Or not in a namespace or a fully qualified name or AND matching the prefix
|| ((!$namespaceNode || $isFullyQualified) && $fqnStartsWithPrefix)
// Or in a namespace, not fully qualified and matching the prefix + current namespace
|| (
$namespaceNode
&& !$isFullyQualified
&& substr($fqn, 0, $namespacedPrefixLen) === $namespacedPrefix
)
)
)
// Only suggest classes for `new`
&& (!isset($creation) || $def->canBeInstantiated)
) {
$item = CompletionItem::fromDefinition($def); $item = CompletionItem::fromDefinition($def);
// Find the shortest name to reference the symbol
$item->insertText = $fqn; if ($namespaceNode && ($alias = array_search($fqn, $aliases, true)) !== false) {
// $alias is the name under which this definition is aliased in the current namespace
$item->insertText = $alias;
} else if ($namespaceNode && !($prefix && $isFullyQualified)) {
// Insert the global FQN with leading backslash
$item->insertText = '\\' . $fqn;
} else {
// Insert the FQN without leading backlash
$item->insertText = $fqn;
}
// Don't insert the parenthesis for functions
// TODO return a snippet and put the cursor inside
if (substr($item->insertText, -2) === '()') {
$item->insertText = substr($item->insertText, 0, -2);
}
$list->items[] = $item; $list->items[] = $item;
} }
} }
// If not a class instantiation, also suggest keywords
if (!isset($creation)) { if (!isset($creation)) {
foreach (self::KEYWORDS as $keyword) { foreach (self::KEYWORDS as $keyword) {
$item = new CompletionItem($keyword, CompletionItemKind::KEYWORD); if (substr($keyword, 0, $prefixLen) === $prefix) {
$item->insertText = $keyword . ' '; $item = new CompletionItem($keyword, CompletionItemKind::KEYWORD);
$list->items[] = $item; $item->insertText = $keyword;
$list->items[] = $item;
}
} }
} }
} elseif (ParserHelpers\isConstantFetch($node)) {
$prefix = (string) ($node->getResolvedName() ?? PhpParser\ResolvedName::buildName($node->nameParts, $node->getFileContents()));
foreach (self::KEYWORDS as $keyword) {
$item = new CompletionItem($keyword, CompletionItemKind::KEYWORD);
$item->insertText = $keyword . ' ';
$list->items[] = $item;
}
} }
return $list; return $list;

View File

@ -44,6 +44,13 @@ class Definition
*/ */
public $isGlobal; public $isGlobal;
/**
* True if this definition is affected by global namespace fallback (global function or global constant)
*
* @var bool
*/
public $roamed;
/** /**
* False for instance methods and properties * False for instance methods and properties
* *

View File

@ -193,6 +193,16 @@ class DefinitionResolver
($node instanceof Node\ConstElement && $node->parent->parent instanceof Node\Statement\ConstDeclaration) ($node instanceof Node\ConstElement && $node->parent->parent instanceof Node\Statement\ConstDeclaration)
); );
// Definition is affected by global namespace fallback if it is a global constant or a global function
$def->roamed = (
$fqn !== null
&& strpos($fqn, '\\') === false
&& (
($node instanceof Node\ConstElement && $node->parent->parent instanceof Node\Statement\ConstDeclaration)
|| $node instanceof Node\Statement\FunctionDeclaration
)
);
// Static methods and static property declarations // Static methods and static property declarations
$def->isStatic = ( $def->isStatic = (
($node instanceof Node\MethodDeclaration && $node->isStatic()) || ($node instanceof Node\MethodDeclaration && $node->isStatic()) ||

View File

@ -69,6 +69,27 @@ class CompletionTest extends TestCase
], true), $items); ], true), $items);
} }
public function testGlobalFunctionInsideNamespaceAndClass()
{
$completionUri = pathToUri(__DIR__ . '/../../../fixtures/completion/inside_namespace_and_method.php');
$this->loader->open($completionUri, file_get_contents($completionUri));
$items = $this->textDocument->completion(
new TextDocumentIdentifier($completionUri),
new Position(8, 11)
)->wait();
$this->assertCompletionsListSubset(new CompletionList([
new CompletionItem(
'test_function',
CompletionItemKind::FUNCTION,
'void', // Return type
'Officia aliquip adipisicing et nulla et laboris dolore labore.',
null,
null,
'\test_function'
)
], true), $items);
}
public function testPropertyAndMethodWithoutPrefix() public function testPropertyAndMethodWithoutPrefix()
{ {
$completionUri = pathToUri(__DIR__ . '/../../../fixtures/completion/property.php'); $completionUri = pathToUri(__DIR__ . '/../../../fixtures/completion/property.php');
@ -234,10 +255,7 @@ class CompletionTest extends TestCase
'laboris commodo ad commodo velit mollit qui non officia id. Nulla duis veniam' . "\n" . 'laboris commodo ad commodo velit mollit qui non officia id. Nulla duis veniam' . "\n" .
'veniam officia deserunt et non dolore mollit ea quis eiusmod sit non. Occaecat' . "\n" . 'veniam officia deserunt et non dolore mollit ea quis eiusmod sit non. Occaecat' . "\n" .
'consequat sunt culpa exercitation pariatur id reprehenderit nisi incididunt Lorem' . "\n" . 'consequat sunt culpa exercitation pariatur id reprehenderit nisi incididunt Lorem' . "\n" .
'sint. Officia culpa pariatur laborum nostrud cupidatat consequat mollit.', 'sint. Officia culpa pariatur laborum nostrud cupidatat consequat mollit.'
null,
null,
'TestClass'
) )
], true), $items); ], true), $items);
} }
@ -397,8 +415,8 @@ class CompletionTest extends TestCase
new Position(2, 1) new Position(2, 1)
)->wait(); )->wait();
$this->assertCompletionsListSubset(new CompletionList([ $this->assertCompletionsListSubset(new CompletionList([
new CompletionItem('class', CompletionItemKind::KEYWORD, null, null, null, null, 'class '), new CompletionItem('class', CompletionItemKind::KEYWORD, null, null, null, null, 'class'),
new CompletionItem('clone', CompletionItemKind::KEYWORD, null, null, null, null, 'clone ') new CompletionItem('clone', CompletionItemKind::KEYWORD, null, null, null, null, 'clone')
], true), $items); ], true), $items);
} }

View File

@ -21,6 +21,7 @@
"fqn": "Fixtures\\Prophecy", "fqn": "Fixtures\\Prophecy",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -41,6 +42,7 @@
"Fixtures\\Prophecy\\EmptyClass" "Fixtures\\Prophecy\\EmptyClass"
], ],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -59,6 +61,7 @@
"fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getSelf()", "fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getSelf()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -78,6 +81,7 @@
"fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getName()", "fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getName()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -97,6 +101,7 @@
"fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getParent()", "fqn": "Fixtures\\Prophecy\\WithReturnTypehints->getParent()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -5,6 +5,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -5,6 +5,7 @@
"fqn": "A", "fqn": "A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -23,6 +24,7 @@
"fqn": "A->foo", "fqn": "A->foo",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "TestNamespace", "fqn": "TestNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "TestNamespace\\A", "fqn": "TestNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -48,6 +50,7 @@
"fqn": "TestNamespace\\A->a", "fqn": "TestNamespace\\A->a",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "TestNamespace", "fqn": "TestNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "TestNamespace\\TestClass", "fqn": "TestNamespace\\TestClass",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -48,6 +50,7 @@
"fqn": "TestNamespace\\TestClass->testProperty", "fqn": "TestNamespace\\TestClass->testProperty",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -67,6 +70,7 @@
"fqn": "TestNamespace\\TestClass->testMethod()", "fqn": "TestNamespace\\TestClass->testMethod()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -48,6 +50,7 @@
"fqn": "MyNamespace\\A::suite()", "fqn": "MyNamespace\\A::suite()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -48,6 +50,7 @@
"fqn": "MyNamespace\\A::suite()", "fqn": "MyNamespace\\A::suite()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -48,6 +50,7 @@
"fqn": "MyNamespace\\A::suite()", "fqn": "MyNamespace\\A::suite()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -48,6 +50,7 @@
"fqn": "MyNamespace\\A->suite()", "fqn": "MyNamespace\\A->suite()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -27,6 +28,7 @@
"fqn": "MyNamespace\\Mbstring", "fqn": "MyNamespace\\Mbstring",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -45,6 +47,7 @@
"fqn": "MyNamespace\\Mbstring::MB_CASE_FOLD", "fqn": "MyNamespace\\Mbstring::MB_CASE_FOLD",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "A", "fqn": "A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -27,6 +28,7 @@
"fqn": "A->b()", "fqn": "A->b()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -5,6 +5,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -5,6 +5,7 @@
"fqn": "A", "fqn": "A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "B", "fqn": "B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "A", "fqn": "A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -27,6 +28,7 @@
"fqn": "A::$deprecationsTriggered", "fqn": "A::$deprecationsTriggered",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -48,6 +50,7 @@
"fqn": "MyNamespace\\A::a()", "fqn": "MyNamespace\\A::a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -48,6 +50,7 @@
"fqn": "MyNamespace\\A::a()", "fqn": "MyNamespace\\A::a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -27,6 +27,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -45,6 +46,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -63,6 +65,7 @@
"fqn": "MyNamespace\\A::getInitializer()", "fqn": "MyNamespace\\A::getInitializer()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -18,6 +18,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -36,6 +37,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -54,6 +56,7 @@
"fqn": "MyNamespace\\A->testRequest()", "fqn": "MyNamespace\\A->testRequest()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -27,6 +28,7 @@
"fqn": "MyNamespace\\ParseErrorsTest", "fqn": "MyNamespace\\ParseErrorsTest",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -45,6 +47,7 @@
"fqn": "MyNamespace\\ParseErrorsTest->setUp()", "fqn": "MyNamespace\\ParseErrorsTest->setUp()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -15,6 +15,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -33,6 +34,7 @@
"fqn": "MyNamespace\\ParseErrorsTest", "fqn": "MyNamespace\\ParseErrorsTest",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -51,6 +53,7 @@
"fqn": "MyNamespace\\ParseErrorsTest->setAccount()", "fqn": "MyNamespace\\ParseErrorsTest->setAccount()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "FooClass", "fqn": "FooClass",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -27,6 +28,7 @@
"fqn": "FooClass->foo()", "fqn": "FooClass->foo()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -18,6 +18,7 @@
"fqn": "MyNamespace1", "fqn": "MyNamespace1",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -36,6 +37,7 @@
"fqn": "MyNamespace1\\B", "fqn": "MyNamespace1\\B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -54,6 +56,7 @@
"fqn": "MyNamespace1\\B->b()", "fqn": "MyNamespace1\\B->b()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -73,6 +76,7 @@
"fqn": "MyNamespace2", "fqn": "MyNamespace2",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -93,6 +97,7 @@
"MyNamespace2\\MyNamespace1\\B" "MyNamespace2\\MyNamespace1\\B"
], ],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -111,6 +116,7 @@
"fqn": "MyNamespace2\\A->a()", "fqn": "MyNamespace2\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -5,6 +5,7 @@
"fqn": "Foo", "fqn": "Foo",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -23,6 +24,7 @@
"fqn": "Foo->fn()", "fqn": "Foo->fn()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -5,6 +5,7 @@
"fqn": "A", "fqn": "A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -23,6 +24,7 @@
"fqn": "A->b()", "fqn": "A->b()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -18,6 +18,7 @@
"fqn": "MyNamespace1", "fqn": "MyNamespace1",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -27,6 +27,7 @@
"fqn": "B", "fqn": "B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -5,6 +5,7 @@
"fqn": "A\\B", "fqn": "A\\B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -15,6 +15,7 @@
"fqn": "LanguageServer\\Tests\\Utils", "fqn": "LanguageServer\\Tests\\Utils",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -27,6 +28,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -45,6 +47,7 @@
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -48,6 +50,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -66,6 +69,7 @@
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "A", "fqn": "A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -27,6 +28,7 @@
"fqn": "A->a()", "fqn": "A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -27,6 +28,7 @@
"fqn": "MyNamespace\\init()", "fqn": "MyNamespace\\init()",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -48,6 +50,7 @@
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -69,6 +72,7 @@
"MyNamespace\\B" "MyNamespace\\B"
], ],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -87,6 +91,7 @@
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -15,6 +15,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -33,6 +34,7 @@
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -51,6 +53,7 @@
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -72,6 +75,7 @@
"MyNamespace\\B" "MyNamespace\\B"
], ],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -90,6 +94,7 @@
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -5,6 +5,7 @@
"fqn": "MyClass", "fqn": "MyClass",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -23,6 +24,7 @@
"fqn": "MyClass->mainPropertyName", "fqn": "MyClass->mainPropertyName",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -5,6 +5,7 @@
"fqn": "MyClass", "fqn": "MyClass",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -23,6 +24,7 @@
"fqn": "MyClass->mainPropertyName", "fqn": "MyClass->mainPropertyName",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "TestNamespace", "fqn": "TestNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "TestNamespace\\whatever()", "fqn": "TestNamespace\\whatever()",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -48,6 +50,7 @@
"fqn": "MyNamespace\\A::a()", "fqn": "MyNamespace\\A::a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "A", "fqn": "A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "A::$a", "fqn": "A::$a",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -18,6 +18,7 @@
"fqn": "TestClass", "fqn": "TestClass",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -36,6 +37,7 @@
"fqn": "TestClass::$testProperty", "fqn": "TestClass::$testProperty",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -15,6 +15,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -33,6 +34,7 @@
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -51,6 +53,7 @@
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -72,6 +75,7 @@
"MyNamespace\\B" "MyNamespace\\B"
], ],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -90,6 +94,7 @@
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -15,6 +15,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -33,6 +34,7 @@
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -51,6 +53,7 @@
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -72,6 +75,7 @@
"MyNamespace\\B" "MyNamespace\\B"
], ],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -90,6 +94,7 @@
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -15,6 +15,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -33,6 +34,7 @@
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -51,6 +53,7 @@
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -72,6 +75,7 @@
"MyNamespace\\B" "MyNamespace\\B"
], ],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -90,6 +94,7 @@
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -24,6 +24,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -42,6 +43,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -60,6 +62,7 @@
"fqn": "MyNamespace\\A::suite()", "fqn": "MyNamespace\\A::suite()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -27,6 +28,7 @@
"fqn": "MyNamespace\\A", "fqn": "MyNamespace\\A",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -45,6 +47,7 @@
"fqn": "MyNamespace\\A->typesProvider()", "fqn": "MyNamespace\\A->typesProvider()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -15,6 +15,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -33,6 +34,7 @@
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -51,6 +53,7 @@
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -72,6 +75,7 @@
"MyNamespace\\B" "MyNamespace\\B"
], ],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -90,6 +94,7 @@
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -15,6 +15,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -33,6 +34,7 @@
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -51,6 +53,7 @@
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -72,6 +75,7 @@
"MyNamespace\\B" "MyNamespace\\B"
], ],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -90,6 +94,7 @@
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -15,6 +15,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -33,6 +34,7 @@
"fqn": "MyNamespace\\B", "fqn": "MyNamespace\\B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -51,6 +53,7 @@
"fqn": "MyNamespace\\B->b()", "fqn": "MyNamespace\\B->b()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -72,6 +75,7 @@
"MyNamespace\\B" "MyNamespace\\B"
], ],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -90,6 +94,7 @@
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "MyNamespace", "fqn": "MyNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -32,6 +33,7 @@
"MyNamespace\\B" "MyNamespace\\B"
], ],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -50,6 +52,7 @@
"fqn": "MyNamespace\\A->a()", "fqn": "MyNamespace\\A->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "FooClass", "fqn": "FooClass",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -27,6 +28,7 @@
"fqn": "FooClass::staticFoo()", "fqn": "FooClass::staticFoo()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": true, "isStatic": true,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -46,6 +48,7 @@
"fqn": "FooClass->bar()", "fqn": "FooClass->bar()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -5,6 +5,7 @@
"fqn": "B", "fqn": "B",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -23,6 +24,7 @@
"fqn": "B->hi", "fqn": "B->hi",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -42,6 +44,7 @@
"fqn": "B->a()", "fqn": "B->a()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -9,6 +9,7 @@
"fqn": "SomeNamespace", "fqn": "SomeNamespace",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {

View File

@ -12,6 +12,7 @@
"fqn": "Foo", "fqn": "Foo",
"extends": [], "extends": [],
"isGlobal": true, "isGlobal": true,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": true, "canBeInstantiated": true,
"symbolInformation": { "symbolInformation": {
@ -30,6 +31,7 @@
"fqn": "Foo->bar", "fqn": "Foo->bar",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {
@ -49,6 +51,7 @@
"fqn": "Foo->foo()", "fqn": "Foo->foo()",
"extends": [], "extends": [],
"isGlobal": false, "isGlobal": false,
"roamed": false,
"isStatic": false, "isStatic": false,
"canBeInstantiated": false, "canBeInstantiated": false,
"symbolInformation": { "symbolInformation": {