ITypeHierarchy hierarchy= getSuperType().newTypeHierarchy(new SubProgressMonitor(pm, 1));
ITypeHierarchy hierarchy= getSuperTypeHierarchy(new SubProgressMonitor(pm, 1));
	private void checkFieldTypes(IProgressMonitor pm, RefactoringStatus result) throws JavaModelException {		ITypeHierarchy hierarchy= getSuperType().newTypeHierarchy(new SubProgressMonitor(pm, 1));		Map mapping= getMatchingMembersMapping(hierarchy, hierarchy.getType());//IMember -> Set of IMembers		for (int i= 0; i < fElementsToPullUp.length; i++) {			if (fElementsToPullUp[i].getElementType() != IJavaElement.FIELD)				continue;			IField field= (IField)fElementsToPullUp[i];			String type= getTypeName(field);			for (Iterator iter= ((Set)mapping.get(field)).iterator(); iter.hasNext();) {				IField matchingField= (IField) iter.next();				if (type.equals(getTypeName(matchingField)))					continue;				String msg= "Field '" + matchingField.getElementName() + "' declared in type'"									 + matchingField.getDeclaringType().getFullyQualifiedName()									 + "' has a different type than its pulled up counterpart." ;				result.addError(msg, createContext(Refactoring.getResource(matchingField), matchingField.getSourceRange()));				}		}	}