} else if (binding.isArray()) { addInherited(fRoot.getAST().resolveWellKnownType("java.lang.Object"), flags);
	private void addInherited(ITypeBinding binding, int flags) {		if (!fTypesVisited.add(binding)) {			return;		}		if (hasFlag(VARIABLES, flags)) {			IVariableBinding[] variableBindings= binding.getDeclaredFields();			for (int i= 0; i < variableBindings.length; i++) {				addResult(variableBindings[i]);			}		}				if (hasFlag(METHODS, flags)) {			IMethodBinding[] methodBindings= binding.getDeclaredMethods();			for (int i= 0; i < methodBindings.length; i++) {				IMethodBinding curr= methodBindings[i];				if (!curr.isSynthetic() && !curr.isConstructor()) {					addResult(curr);						}			}		}		if (hasFlag(TYPES, flags)) {			ITypeBinding[] typeBindings= binding.getDeclaredTypes();			for (int i= 0; i < typeBindings.length; i++) {				ITypeBinding curr= typeBindings[i];				addResult(curr);						}		}								ITypeBinding superClass= binding.getSuperclass();		if (superClass != null) {			addInherited(superClass, flags); // recursive		}				if (hasFlag(TYPES | VARIABLES, flags)) {			ITypeBinding[] interfaces= binding.getInterfaces();			for (int i= 0; i < interfaces.length; i++) {				addInherited(interfaces[i], flags & (TYPES | VARIABLES)); // recursive			}					}	}