@Override
    public SymbolReference<? extends ResolvedValueDeclaration> solveSymbol(String name, TypeSolver typeSolver) {
        if (typeSolver == null) throw new IllegalArgumentException();

        if (this.getDeclaration().hasVisibleField(name)) {
            return SymbolReference.solved(this.getDeclaration().getVisibleField(name));
        }

        // then to parent
        return getParent().solveSymbol(name, typeSolver);
    }
@Override
    public SymbolReference<? extends ResolvedValueDeclaration> solveSymbol(String name, TypeSolver typeSolver) {
        if (typeSolver == null) throw new IllegalArgumentException();

        if (this.getDeclaration().hasVisibleField(name)) {
            return SymbolReference.solved(this.getDeclaration().getVisibleField(name));
        }

        
        return getParent().solveSymbol(name, typeSolver);
    }
@ Override public SymbolReference < ? extends ResolvedValueDeclaration > solveSymbol ( String name , TypeSolver typeSolver ) { if ( typeSolver == null ) throw new IllegalArgumentException ( ) ; if ( this . getDeclaration ( ) . hasVisibleField ( name ) ) { return SymbolReference . solved ( this . getDeclaration ( ) . getVisibleField ( name ) ) ; } // then to parent return getParent ( ) . solveSymbol ( name , typeSolver ) ; }
/
/