trace-recorder/src/main/org/jetbrains/lincheck/trace/recorder/TraceCollectingEventTracker.kt [612:635]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - interceptor: ResultInterceptor?, ): Unit = threadDescriptor.runInsideInjectedCode { val threadData = threadDescriptor.eventTrackerData as? ThreadData? ?: return val thread = Thread.currentThread() val methodDescriptor = context.getMethodDescriptor(methodId) val methodSection = methodAnalysisSectionType(receiver, methodDescriptor.className, methodDescriptor.methodName) if (methodSection == AnalysisSectionType.IGNORED) { threadData.leaveAnalysisSection(methodSection) return } // TODO: what about inline method calls? Inside them also could be loops. // The inline methods should be closed after closing the loops inside them. // close all existing loops while (threadData.currentLoopTracePoint() != null) { exitCurrentLoop(thread, threadData) } while (threadData.isCurrentMethodCallInline()) { val inlineTracePoint = threadData.currentMethodCallTracePoint()!! Logger.error { "Forced exit from inline method ${inlineTracePoint.methodId} " + "${inlineTracePoint.className}.${inlineTracePoint.methodName}" + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - trace-recorder/src/main/org/jetbrains/lincheck/trace/recorder/TraceCollectingEventTracker.kt [662:685]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - interceptor: ResultInterceptor?, ): Unit = threadDescriptor.runInsideInjectedCode { val threadData = threadDescriptor.eventTrackerData as? ThreadData? ?: return val thread = Thread.currentThread() val methodDescriptor = context.getMethodDescriptor(methodId) val methodSection = methodAnalysisSectionType(receiver, methodDescriptor.className, methodDescriptor.methodName) if (methodSection == AnalysisSectionType.IGNORED) { threadData.leaveAnalysisSection(methodSection) return } // TODO: what about inline method calls? Inside them also could be loops. // The inline methods should be closed after closing the loops inside them. // close all existing loops while (threadData.currentLoopTracePoint() != null) { exitCurrentLoop(thread, threadData) } while (threadData.isCurrentMethodCallInline()) { val inlineTracePoint = threadData.currentMethodCallTracePoint()!! Logger.error { "Forced exit from inline method ${inlineTracePoint.methodId} " + "${inlineTracePoint.className}.${inlineTracePoint.methodName}" + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -