Integer (@NotNull SuspendContextImpl context, @Nullable Location location) { final DebuggerSettings settings = DebuggerSettings.getInstance(); if ((myMethodFilter != null || (settings.SKIP_SYNTHETIC_METHODS && !myIgnoreFilters)) && location != null && DebuggerUtils.isSynthetic(location.method())) { return myDepth; } if (!myIgnoreFilters) { if (settings.SKIP_GETTERS) { boolean isGetter = ReadAction.compute(() -> { PsiElement contextElement = ContextUtil.getContextElement(context); return contextElement != null && DebuggerUtils.isInsideSimpleGetter(contextElement); }).booleanValue(); if (isGetter) { return StepRequest.STEP_OUT; } } if (location != null) { if (settings.SKIP_CONSTRUCTORS) { final Method method = location.method(); if (method != null && method.isConstructor()) { return StepRequest.STEP_OUT; } } if (settings.SKIP_CLASSLOADERS && DebuggerUtilsEx.isAssignableFrom("java.lang.ClassLoader", location.declaringType())) { return StepRequest.STEP_OUT; } } for (ExtraSteppingFilter filter : ExtraSteppingFilter.EP_NAME.getExtensionList()) { try { if (filter.isApplicable(context)) { return filter.getStepRequestDepth(context); } } catch (Exception | AssertionError e) { DebuggerUtilsImpl.logError(e); } } } return null; }