code: public String removeName(Object referenced) throws IllegalStateException {
  		if (referenced == null)
  			throw new NullPointerException("referenced");
  		if (scopes.isEmpty())
  			throw new IllegalStateException("Cannot find referenced object in current scope");
  		Scope currentScope = scopes.get(scopes.size() - 1);
  		Iterator<Variable> iterator = currentScope.variables().iterator();
  		while(iterator.hasNext()) {
  			Variable v = iterator.next();
  			if (v.referenced.equals(referenced)) {
  				v.markRemoved();
  				return v.name;
  			}
  		}
  		throw new IllegalStateException("Cannot find referenced object in current scope");
  	}
docs: /* @NonNull