@Override public void addGenericVariationsTo( Collection<Unode> alternatives, Suffix suffix, boolean reading) { receiver.addGenericVariationsTo( alternatives, new LiteralIntegerIndexSuffix(suffix, index), reading); if (reading) receiver.addGenericVariationsTo( alternatives, new UnknownIndexUnode.UnknownIndexSuffix(suffix), reading); else receiver.addGenericVariationsTo( alternatives, new AnyIndexUnode.AnyIndexSuffix(suffix), reading); }
@Override @pausable public void findRenames( Suffix suffix, PythonLexicalContext sc, PythonDynamicContext dc, AliasConsumer aliases) { super.findRenames(suffix, sc, dc, aliases); receiver.findIntegerIndexRenames(suffix, sc, dc, aliases, index); }
@Override @pausable public void computeAliases( Suffix suffix, PythonLexicalContext sc, PythonDynamicContext dc, AliasConsumer aliases) { super.computeAliases(suffix, sc, dc, aliases); receiver.computeAliases(new LiteralIntegerIndexSuffix(suffix, index), sc, dc, aliases); }
@Override protected int computeHashCode() { final int prime = 31; int result = super.hashCode(); result = prime * result + index; result = prime * result + ((receiver == null) ? 0 : receiver.hashCode()); return result; }
@Override public boolean equals(Object obj) { if (this == obj) return true; if (getClass() != obj.getClass()) return false; LiteralIntegerIndexUnode other = (LiteralIntegerIndexUnode) obj; if (index != other.index) return false; if (receiver == null) { if (other.receiver != null) return false; } else if (!receiver.equals(other.receiver)) return false; return true; }
@Override public VariableUnode leadingVariableUnode() { return receiver.leadingVariableUnode(); }
@Override public boolean isIndexable() { return receiver.isIndexable(); }