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 symbols_filtering() {
      assertThat(SYMBOL_MODEL.getSymbols()).hasSize(20);
  
      assertThat(SYMBOL_MODEL.getSymbols(Symbol.Kind.FUNCTION)).hasSize(2);
      assertThat(SYMBOL_MODEL.getSymbols(Symbol.Kind.CLASS)).hasSize(1);
      assertThat(SYMBOL_MODEL.getSymbols(Symbol.Kind.FIELD)).hasSize(3);
      assertThat(SYMBOL_MODEL.getSymbols(Symbol.Kind.PARAMETER)).hasSize(1);
      assertThat(SYMBOL_MODEL.getSymbols(Symbol.Kind.VARIABLE)).hasSize(13);
  
      assertThat(SYMBOL_MODEL.getSymbols("$a")).hasSize(3);
      // Case sensitive for variables
      assertThat(SYMBOL_MODEL.getSymbols("$A")).hasSize(0);
  
      assertThat(SYMBOL_MODEL.getSymbols("f")).hasSize(2);
      // Case in-sensitive for functions
      assertThat(SYMBOL_MODEL.getSymbols("F")).hasSize(2);
    }
test_case.class_method_signature: SymbolTableImplTest.symbols_filtering()
test_case.full_signature: @Test public void symbols_filtering()
test_case.identifier: symbols_filtering
test_case.invocations: hasSize assertThat getSymbols hasSize assertThat getSymbols hasSize assertThat getSymbols hasSize assertThat getSymbols hasSize assertThat getSymbols hasSize assertThat getSymbols hasSize assertThat getSymbols hasSize assertThat getSymbols hasSize assertThat getSymbols hasSize assertThat getSymbols
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void symbols_filtering()
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()