class MethodAnalyzer extends SimAnalyzer {

	/**
	 * Create method analyzer.
	 *
	 * @param interpreter
	 * 		Interpreter to use.
	 */
	public MethodAnalyzer(SimInterpreter interpreter) {
		super(interpreter);
	}

	@Override
	protected TypeChecker createTypeChecker() {
		return (parent, child) -> getGraph()
				.getAllParents(child.getInternalName())
					.anyMatch(n -> n != null && n.equals(parent.getInternalName()));
	}

	@Override
	protected TypeResolver createTypeResolver() {<FILL_FUNCTION_BODY>}

	private static HierarchyGraph getGraph() {
		return Recaf.getCurrentWorkspace().getHierarchyGraph();
	}
}

		return new TypeResolver() {
			@Override
			public Type common(Type type1, Type type2) {
				String common = getGraph().getCommon(type1.getInternalName(), type2.getInternalName());
				if (common != null)
					return Type.getObjectType(common);
				return TypeUtil.OBJECT_TYPE;
			}

			@Override
			public Type commonException(Type type1, Type type2) {
				String common = getGraph().getCommon(type1.getInternalName(), type2.getInternalName());
				if (common != null)
					return Type.getObjectType(common);
				return TypeUtil.EXCEPTION_TYPE;
			}
		};
	
<no_super_class>