test_class.declarator: cut = parse("symbols/symbolTable.php")
test_class.modifier: private
test_class.original_string: private CompilationUnitTree cut = parse("symbols/symbolTable.php");
test_class.type: CompilationUnitTree
test_class.var_name: cut
test_class.declarator: SYMBOL_MODEL = SymbolTableImpl.create(cut)
test_class.modifier: private
test_class.original_string: private SymbolTableImpl SYMBOL_MODEL = SymbolTableImpl.create(cut);
test_class.type: SymbolTableImpl
test_class.var_name: SYMBOL_MODEL
test_class.file: php-frontend/src/test/java/org/sonar/php/tree/symbols/SymbolTableImplTest.java
test_class.identifier: SymbolTableImplTest
test_class.superclass: extends ParsingTestUtils
test_case.body: @Test
    public void foreach_variable() {
      assertThat(SYMBOL_MODEL.getSymbols("$key")).hasSize(1);
      assertThat(SYMBOL_MODEL.getSymbols("$val")).hasSize(1);
    }
test_case.class_method_signature: SymbolTableImplTest.foreach_variable()
test_case.full_signature: @Test public void foreach_variable()
test_case.identifier: foreach_variable
test_case.invocations: hasSize assertThat getSymbols hasSize assertThat getSymbols
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void foreach_variable()
focal_class.declarator: symbols = new ArrayList<>()
focal_class.modifier: private
focal_class.original_string: private List<Symbol> symbols = new ArrayList<>();
focal_class.type: List<Symbol>
focal_class.var_name: symbols
focal_class.declarator: scopes = new HashMap<>()
focal_class.modifier: private
focal_class.original_string: private Map<Tree, Scope> scopes = new HashMap<>();
focal_class.type: Map<Tree, Scope>
focal_class.var_name: scopes
focal_class.declarator: symbolsByTree = new HashMap<>()
focal_class.modifier: private
focal_class.original_string: private Map<Tree, Symbol> symbolsByTree = new HashMap<>();
focal_class.type: Map<Tree, Symbol>
focal_class.var_name: symbolsByTree
focal_class.declarator: symbolByQualifiedName = new HashMap<>()
focal_class.modifier: private
focal_class.original_string: private Map<QualifiedName, Symbol> symbolByQualifiedName = new HashMap<>();
focal_class.type: Map<QualifiedName, Symbol>
focal_class.var_name: symbolByQualifiedName
focal_class.declarator: classSymbolData
focal_class.modifier: private
focal_class.original_string: private Collection<ClassSymbolData> classSymbolData;
focal_class.type: Collection<ClassSymbolData>
focal_class.var_name: classSymbolData
focal_class.declarator: functionSymbolData
focal_class.modifier: private
focal_class.original_string: private Collection<FunctionSymbolData> functionSymbolData;
focal_class.type: Collection<FunctionSymbolData>
focal_class.var_name: functionSymbolData
focal_class.file: php-frontend/src/main/java/org/sonar/php/tree/symbols/SymbolTableImpl.java
focal_class.identifier: SymbolTableImpl
focal_class.interfaces: implements SymbolTable
focal_class.class_method_signature: SymbolTableImpl.SymbolTableImpl()
focal_class.full_signature: private  SymbolTableImpl()
focal_class.identifier: SymbolTableImpl
focal_class.modifiers: private
focal_class.parameters: ()
focal_class.signature:  SymbolTableImpl()
focal_class.class_method_signature: SymbolTableImpl.create(CompilationUnitTree compilationUnit)
focal_class.full_signature: public static SymbolTableImpl create(CompilationUnitTree compilationUnit)
focal_class.identifier: create
focal_class.modifiers: public static
focal_class.parameters: (CompilationUnitTree compilationUnit)
focal_class.return: SymbolTableImpl
focal_class.signature: SymbolTableImpl create(CompilationUnitTree compilationUnit)
focal_class.class_method_signature: SymbolTableImpl.create(CompilationUnitTree compilationUnit, ProjectSymbolData projectSymbolData, @Nullable PhpFile file)
focal_class.full_signature: public static SymbolTableImpl create(CompilationUnitTree compilationUnit, ProjectSymbolData projectSymbolData, @Nullable PhpFile file)
focal_class.identifier: create
focal_class.modifiers: public static
focal_class.parameters: (CompilationUnitTree compilationUnit, ProjectSymbolData projectSymbolData, @Nullable PhpFile file)
focal_class.return: SymbolTableImpl
focal_class.signature: SymbolTableImpl create(CompilationUnitTree compilationUnit, ProjectSymbolData projectSymbolData, @Nullable PhpFile file)
focal_class.class_method_signature: SymbolTableImpl.addScope(Scope scope)
focal_class.full_signature:  Scope addScope(Scope scope)
focal_class.identifier: addScope
focal_class.parameters: (Scope scope)
focal_class.return: Scope
focal_class.signature: Scope addScope(Scope scope)
focal_class.class_method_signature: SymbolTableImpl.getScopes()
focal_class.full_signature: @Override public ImmutableSet<Scope> getScopes()
focal_class.identifier: getScopes
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: ImmutableSet<Scope>
focal_class.signature: ImmutableSet<Scope> getScopes()
focal_class.class_method_signature: SymbolTableImpl.getScopeFor(Tree tree)
focal_class.full_signature: @Nullable @Override public Scope getScopeFor(Tree tree)
focal_class.identifier: getScopeFor
focal_class.modifiers: @Nullable @Override public
focal_class.parameters: (Tree tree)
focal_class.return: Scope
focal_class.signature: Scope getScopeFor(Tree tree)
focal_class.class_method_signature: SymbolTableImpl.declareSymbol(IdentifierTree name, Symbol.Kind kind, Scope scope, SymbolQualifiedName namespace)
focal_class.full_signature:  SymbolImpl declareSymbol(IdentifierTree name, Symbol.Kind kind, Scope scope, SymbolQualifiedName namespace)
focal_class.identifier: declareSymbol
focal_class.parameters: (IdentifierTree name, Symbol.Kind kind, Scope scope, SymbolQualifiedName namespace)
focal_class.return: SymbolImpl
focal_class.signature: SymbolImpl declareSymbol(IdentifierTree name, Symbol.Kind kind, Scope scope, SymbolQualifiedName namespace)
focal_class.class_method_signature: SymbolTableImpl.addSymbol(IdentifierTree name, Scope scope, Symbol symbol)
focal_class.full_signature: private void addSymbol(IdentifierTree name, Scope scope, Symbol symbol)
focal_class.identifier: addSymbol
focal_class.modifiers: private
focal_class.parameters: (IdentifierTree name, Scope scope, Symbol symbol)
focal_class.return: void
focal_class.signature: void addSymbol(IdentifierTree name, Scope scope, Symbol symbol)
focal_class.class_method_signature: SymbolTableImpl.declareTypeSymbol(IdentifierTree name, Scope scope, SymbolQualifiedName qualifiedName)
focal_class.full_signature:  TypeSymbolImpl declareTypeSymbol(IdentifierTree name, Scope scope, SymbolQualifiedName qualifiedName)
focal_class.identifier: declareTypeSymbol
focal_class.parameters: (IdentifierTree name, Scope scope, SymbolQualifiedName qualifiedName)
focal_class.return: TypeSymbolImpl
focal_class.signature: TypeSymbolImpl declareTypeSymbol(IdentifierTree name, Scope scope, SymbolQualifiedName qualifiedName)
focal_class.class_method_signature: SymbolTableImpl.declareMemberSymbol(IdentifierTree name, Symbol.Kind kind, Scope scope, TypeSymbol owner)
focal_class.full_signature:  MemberSymbolImpl declareMemberSymbol(IdentifierTree name, Symbol.Kind kind, Scope scope, TypeSymbol owner)
focal_class.identifier: declareMemberSymbol
focal_class.parameters: (IdentifierTree name, Symbol.Kind kind, Scope scope, TypeSymbol owner)
focal_class.return: MemberSymbolImpl
focal_class.signature: MemberSymbolImpl declareMemberSymbol(IdentifierTree name, Symbol.Kind kind, Scope scope, TypeSymbol owner)
focal_class.class_method_signature: SymbolTableImpl.createUndeclaredSymbol(QualifiedName fullyQualifiedName, Symbol.Kind kind)
focal_class.full_signature:  SymbolImpl createUndeclaredSymbol(QualifiedName fullyQualifiedName, Symbol.Kind kind)
focal_class.identifier: createUndeclaredSymbol
focal_class.parameters: (QualifiedName fullyQualifiedName, Symbol.Kind kind)
focal_class.return: SymbolImpl
focal_class.signature: SymbolImpl createUndeclaredSymbol(QualifiedName fullyQualifiedName, Symbol.Kind kind)
focal_class.class_method_signature: SymbolTableImpl.getSymbols()
focal_class.full_signature: public ImmutableList<Symbol> getSymbols()
focal_class.identifier: getSymbols
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: ImmutableList<Symbol>
focal_class.signature: ImmutableList<Symbol> getSymbols()
focal_class.class_method_signature: SymbolTableImpl.getSymbols(Symbol.Kind kind)
focal_class.full_signature: @Override public List<Symbol> getSymbols(Symbol.Kind kind)
focal_class.identifier: getSymbols
focal_class.modifiers: @Override public
focal_class.parameters: (Symbol.Kind kind)
focal_class.return: List<Symbol>
focal_class.signature: List<Symbol> getSymbols(Symbol.Kind kind)
focal_class.class_method_signature: SymbolTableImpl.getSymbols(String name)
focal_class.full_signature: public List<Symbol> getSymbols(String name)
focal_class.identifier: getSymbols
focal_class.modifiers: public
focal_class.parameters: (String name)
focal_class.return: List<Symbol>
focal_class.signature: List<Symbol> getSymbols(String name)
focal_class.class_method_signature: SymbolTableImpl.getSymbol(QualifiedName qualifiedName)
focal_class.full_signature:  Symbol getSymbol(QualifiedName qualifiedName)
focal_class.identifier: getSymbol
focal_class.parameters: (QualifiedName qualifiedName)
focal_class.return: Symbol
focal_class.signature: Symbol getSymbol(QualifiedName qualifiedName)
focal_class.class_method_signature: SymbolTableImpl.getSymbol(String qualifiedName)
focal_class.full_signature:  Symbol getSymbol(String qualifiedName)
focal_class.identifier: getSymbol
focal_class.parameters: (String qualifiedName)
focal_class.return: Symbol
focal_class.signature: Symbol getSymbol(String qualifiedName)
focal_class.class_method_signature: SymbolTableImpl.associateSymbol(Tree identifier, Symbol symbol)
focal_class.full_signature:  void associateSymbol(Tree identifier, Symbol symbol)
focal_class.identifier: associateSymbol
focal_class.parameters: (Tree identifier, Symbol symbol)
focal_class.return: void
focal_class.signature: void associateSymbol(Tree identifier, Symbol symbol)
focal_class.class_method_signature: SymbolTableImpl.getSymbol(Tree tree)
focal_class.full_signature: @Override @CheckForNull public Symbol getSymbol(Tree tree)
focal_class.identifier: getSymbol
focal_class.modifiers: @Override @CheckForNull public
focal_class.parameters: (Tree tree)
focal_class.return: Symbol
focal_class.signature: Symbol getSymbol(Tree tree)
focal_class.class_method_signature: SymbolTableImpl.classSymbolDatas()
focal_class.full_signature: public Collection<ClassSymbolData> classSymbolDatas()
focal_class.identifier: classSymbolDatas
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<ClassSymbolData>
focal_class.signature: Collection<ClassSymbolData> classSymbolDatas()
focal_class.class_method_signature: SymbolTableImpl.functionSymbolDatas()
focal_class.full_signature: public Collection<FunctionSymbolData> functionSymbolDatas()
focal_class.identifier: functionSymbolDatas
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Collection<FunctionSymbolData>
focal_class.signature: Collection<FunctionSymbolData> functionSymbolDatas()
focal_method.body: public ImmutableList<Symbol> getSymbols() {
      return ImmutableList.copyOf(symbols);
    }
focal_method.class_method_signature: SymbolTableImpl.getSymbols()
focal_method.full_signature: public ImmutableList<Symbol> getSymbols()
focal_method.identifier: getSymbols
focal_method.invocations: copyOf
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: ImmutableList<Symbol>
focal_method.signature: ImmutableList<Symbol> getSymbols()