This repository was archived by the owner on Dec 11, 2024. It is now read-only.
Update kotlin (end_codelab_3) - autoclosed #305
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
1.5.0->1.9.01.5.0->1.9.01.5.31->2.1.01.5.31->2.1.0Release Notes
Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-test)
v1.9.0Compare Source
Features
limitedParallelismnow optionally accepts the name of the dispatcher view for easier debugging (#4023).Dispatchers.IOon the JVM when other standard dispatchers are accessed (#4166). Thanks, @metalhead8816!Flow<T>.chunked(size: Int): Flow<List<T>>operator that groups emitted values into groups of the given size (#1290).AutoCloseablenow (#4123).Fixes
hasNexton aChannel's iterator is idempotent (#4065). Thanks, @gitpaxultek!CoroutineScope()created without an explicit dispatcher usesDispatchers.Defaulton Native (#4074). Thanks, @whyoleg!Dispatchers.Mainfrom initializing when the Firebase dependency is used (#3914).runBlocking(#4134).MutextoSemaphore(#4176).asDeferredon aFuturemany times (#4156).Deprecations and promotions
BroadcastChannel-based API (#4197).kotlinx-coroutines-testAPI (#4198).Job.cancelFutureOnCompletion(#4173).CoroutineDispatcher.limitedParallelismto stable (#3864).CoroutineStart.ATOMICfromExperimentalCoroutinesApitoDelicateCoroutinesApi(#4169).CancellableContinuation.resumewith anonCancellationlambda to stable, providing extra arguments to the lambda (#4088).InternalForInheritanceCoroutinesApiopt-in (#3770).ExperimentalForInheritanceCoroutinesApiopt-in (#3770).Other
CoroutineStartandChannel-based API (#4147, #4148, #4167). Thanks, @globsterg!Job(#4053).v1.8.1Compare Source
@ExperimentalTimeannotation from usages ofTimeSource(#4046). Thanks, @hfhbd!NullPointerExceptionwhen setting theStateFlowvalue on old Android devices (#3820).kotlin.random.Randomas part ofDispatchers.DefaultandDispatchers.IOinitialization (#4051).Flow.timeoutthrows the exception with which the channel was closed (#4071).Changelog relative to version 1.8.1-Beta
Flow.timeoutthrows the exception with which the channel was closed (#4071).v1.8.0Compare Source
Dispatchers.Main != Dispatchers.Main.immediate(#3545, #3963).Flowoperators that limit cancel the upstream flow to forget that they were already finished if there is another such operator upstream (#4035, #4038)kotlinx-coroutines-debugis published with the correct Java 9 module info (#3944).kotlinx-coroutines-debugno longer requires manually settingDebugProbes.enableCoroutineCreationStackTracestofalse, it's the default (#3783).kotlinx-coroutines-test: set the default timeout ofrunTestto 60 seconds, added the ability to configure it on the JVM with thekotlinx.coroutines.test.default_timeout=10s(#3800).kotlinx-coroutines-test: fixed a bug that could lead to not all uncaught exceptions being reported after some tests failed (#3800).delay(Duration)rounds nanoseconds up to whole milliseconds and not down (#3920). Thanks @kevincianfarini!Dispatchers.Defaultand the default thread for background work are guaranteed to use the same context classloader as the object containing it them (#3832).SharedFlow.collectsuspends for the first time, it's registered as a subscriber for thatSharedFlow(#3885). Before, it was also true, but not documented.withLockon JS (#3881). Thanks @CLOVIS-AI!Changelog relative to version 1.8.0-RC2
kotlinx-coroutines-debugno longer requires manually settingDebugProbes.enableCoroutineCreationStackTracestofalse, it's the default (#3783).Flowoperators that limit cancel the upstream flow to forget that they were already finished if there is another such operator upstream (#4035, #4038)v1.7.3Compare Source
v1.7.2Compare Source
Bug fixes and improvements
CopyableThreadContextElementnow properly copies an element when crossing the coroutine boundary inflowOn(#3787). Thanks @wanyingd1996!newSingleThreadContextfrom closing (#3768).MutexduringtryLock/unlocksequence with owners is fixed (#3745).v1.7.1Compare Source
Bug fixes and improvements
runTestis restored (#3673)onUndeliveredElementnow allocate less memory (#3646)v1.7.0Compare Source
Core API significant improvements
Channelimplementation with significant performance improvements across the API (#3621).selectoperator implementation: faster, more lightweight, and more robust (#3020).MutexandSemaphorenow share the same underlying data structure (#3020).Dispatchers.IOis added to K/N (#3205)newFixedThreadPoolandDispatchers.Defaultimplementations on K/N were wholly rewritten to support graceful growth under load (#3595).kotlinx-coroutines-testrework:timeoutparameter torunTestfor the whole-test timeout, 10 seconds by default (#3270). This replaces the configuration of quiescence timeouts, which is now deprecated (#3603).withTimeoutexception messages indicate if the timeout used the virtual time (#3588).TestCoroutineScheduler,runTest, andTestScopeAPI are promoted to stable (#3622).runTestnow also fails if there were uncaught exceptions in coroutines not inherited from the test coroutine (#1205).Breaking changes
kotlinx-coroutines-coreandkotlinx-coroutines-jdk8artifacts were merged into a single artifact (#3268).\bsymbol and are now navigable in IDE and supplied with proper documentation (#2291).CoroutineContext.isActivereturnstruefor contexts without any job in them (#3300).Bug fixes and improvements
JavaFxversion is updated to 17.0.2 inkotlinx-coroutines-javafx(#3671)..BroadcastChanneland all the corresponding API are deprecated (#2680).Dispatchers.Defaultis backed by the number of threads equal to the number of available cores (#3366).Job.parentAPI (#3201).TestSchedulerleaked cancelled jobs (#3398).TestScope.timeSourcenow provides comparable time marks (#3617). Thanks @hfhbd!withTimeouthandles were preserved in JS runtime (#3440).awaitFrameonly awaits a single frame when used from the main looper (#3432). Thanks @pablobaxter!Class-Pathattribute was removed fromkotlinx-coroutines-debug.jarmanifest (#3361).updateThreadContextoperated on the parent context (#3411).Flow.filterIsInstanceextension (#3240).Dispatchers.Defaultthread name prefixes are now configurable with system property (#3231).Flow.timeoutoperator as@FlowPreview(#2624). Thanks @pablobaxter!futurebuilder in case of exceptions (#3475). Thanks @He-Pin!Mono.awaitSingleOrNullnow waits for theonCompletesignal (#3487).Channel.isClosedForSendandChannel.isClosedForReceiveare promoted from experimental to delicate (#3448).EventLoop(#3547).Dispatchers.IO.limitedParallelism(valueLargerThanIOSize)no longer creates an additional wrapper (#3442). Thanks @dovchinnikov!@FlowPreviewand@ExperimentalCoroutinesApiare promoted to experimental and stable respectively (#3542, #3097, #3548).Dispatchers.DefaultandDispatchers.IO(#3416, #3418).suspendCancellableCoroutineReusablemight have hanged (#3613).CoroutineExceptionHandleris no longer invoked in case of unprocessedfuturefailure (#3452).withContextoperator (#3592).DebugProbes(#3527).CoroutineDispatcher.asExecutor()runs tasks without dispatching if the dispatcher is unconfined (#3683). Thanks @odedniv!SharedFlow.toMutableListandSharedFlow.toSetlints are introduced (#3706).Channel.invokeOnCloseis promoted to stable API (#3358).Dispatchers.DefaultandDispatchers.IOduring the startup phase (#3652).Dispatchers.Default(#3642).limitedParallelismto perform dispatches even after the underlying dispatcher was closed (#3672).causewas selected (#3714).Changelog for previous versions may be found in CHANGES_UP_TO_1.7.md
v1.6.4Compare Source
TestScope.backgroundScopefor launching coroutines that perform work in the background and need to be cancelled at the end of the test (#3287).kotlinx-coroutines-debughaving an incorrect reference tokotlinx-coroutines-bom, which cause the builds of Maven projects using the debug module to break (#3334).Publisher.awaitfunctions inkotlinx-coroutines-reactivenot ensuring that theSubscribermethods are invoked serially (#3360). Thank you, @EgorKulbachka!withTimeouton K/N with the new memory model (#3351).Throwableimplementations in the core library are serializable (#3328).v1.6.3Compare Source
v1.6.2Compare Source
ThreadLocalElementnot being correctly updated when the most outersuspendfunction was called directly withoutkotlinx.coroutines(#2930).runBlockingevent loop, and a benign data race inMutex(#3250, #3251).TestCoroutineContextis removed, which fixes thekotlinx-coroutines-testJPMS package being split betweenkotlinx-coroutines-coreandkotlinx-coroutines-test(#3218).0.17.2, which includes a more efficient and robust JS IR transformer (#3255).1.6.21, Gradle version is updated to7.4.2(#3281). Thanks, @wojtek-kalicinski!v1.6.1Compare Source
Dispatchers.Main.This behavior was introduced in 1.6.0 and then found inconvenient and erroneous (#3106, #3113).
CopyableThreadContextElementto solve issues uncovered after the initial release (#3227).ThreadLocalElementnot being properly updated in racy scenarios (#2930).CoroutineExceptionHandlerthat triggered ANR on some devices (#3180).CoroutineDispatcherto a Rx scheduler (#968, #548). Thanks @recheej!flowbuilder being retained in memory (#3197).limitedParallelismon K/N with new memory model throwingClassCastException(#3223).CoroutineContextis added to the exception printed to the defaultCoroutineExceptionHandlerto improve debuggability (#3153).Dispatchers.Defaultwas significantly reduced (#3137).kotlinx-coroutines-slf4jfrom 1.7.25 to 1.7.32.v1.6.0Compare Source
Note that this is a full changelog relative to the 1.5.2 version. Changelog relative to 1.6.0-RC3 can be found at the end.
kotlinx-coroutines-test rework
kotlinx-coroutines-testbecame a multiplatform library usable from K/JVM, K/JS, and K/N.).
Dispatchers
CoroutineDispatcher.limitedParallelismthat allows obtaining a view of the original dispatcher with limited parallelism (#2919).Dispatchers.IO.limitedParallelismusages ignore the bound on the parallelism level ofDispatchers.IOitself to avoid starvation (#2943).Dispatchers.shutdownmethod for containerized environments (#2558).newSingleThreadContextandnewFixedThreadPoolContextare promoted to delicate API (#2919).Breaking changes
futurebuilder no longer reports unhandled exceptions into the globalCoroutineExceptionHandler. Thanks @vadimsemenov! (#2774, #2791).Mutex.onLockis deprecated for removal (#2794).Dispatchers.Mainis now used as the default source of time fordelayandwithTimeoutwhen present (#2972).kotlinx.coroutines.main.delaysystem property can be set tofalse.collectno longer resolves when used with a non-in-place argument of a functional type. This is a candidate for a fix, uncovered after 1.6.0, see #3107 for the additional details.Bug fixes and improvements
kotlin.native.binary.memoryModelis enabled (#2914).CopyableThreadContextElementfor mutable context elements shared among multiple coroutines. Thanks @yorickhenning! (#2893).transformWhile,awaitClose,ProducerScope,merge,runningFold,runingReduce, andscanare promoted to stable API (#2971).SharedFlow.subscriptionCountno longer conflates incoming updates and gives all subscribers a chance to observe a short-lived subscription (#2488, #2863, #2871).Flowexception transparency mechanism is improved to be more exception-friendly (#3017, #2860).flat*operators that leverage multiple coroutines is no longer propagated upstream (#2964).SharedFlow.collectnow returnsNothing(#2789, #2502).DisposableHandleis nowfun interface, and corresponding inline extension is removed (#2790).FlowCollectoris nowfun interface, and corresponding inline extension is removed (#3047).processUnhandledException(#2981).Taskcallbacks inkotlinx-coroutines-play-services(#2990).CoroutineExceptionHandleris loaded eagerly and does not invokeServiceLoaderon its exception-handling path (#2552).ServiceLoaderoptimization (#2880).SendChannel.trySendBlockingis now available on Kotlin/Native (#3064).ClassValuewhen available (#2997).Delayinterface is deprecated (#2979).CommonPoolis removed.@ExperimentalTimeis no longer needed for methods that useDuration(#3041).v1.5.2Compare Source
onUndeliveredElementwas incorrectly called on properly received elements on JS (#2826).Dispatchers.Defaulton React Native, it now fully relies onsetTimeoutinstead of stubprocess.nextTick. Thanks to @Legion2 (#2843).Muteximplementation (#2581).Muteximplementation is made completely lock-free as stated (#2590).v1.5.1Compare Source
update,getAndUpdate, andupdateAndGetoperations ofMutableStateFlow(#2720).Executor.asCoroutineDispatcherimplementation improvements (#2601):ScheduledExecutorService, then itsscheduleAPI is used for time-related coroutine operations.RemoveOnCancelPolicyis now part of the public contract.Task.asDeferredandTask.awaitthat acceptCancellationTokenSourcefor bidirectional cancellation (#2527).1.0.3(#2740).CopyableThrowableis allowed to modify the exception message during stacktrace recovery (#1931).CoroutineDispatcher.releaseInterceptedContinuationis now afinalmethod (#2785).Handler.asCoroutineDispatchernow causes the dispatched coroutines to be canceled onDispatchers.IO (#​2778).ClassCastExceptioninreleaseInterceptedContinuationandIllegalStateExceptionfromtryReleaseClaimedContinuation(#2736, #2768).CompletableFuture.asDeferredwhen the target future has a long chain of listeners (#2730).CoroutineDispatcher.isDispatchNeededare now considered as fatal and are propagated to the caller (#2733).DebugProbesKt(used in the debugger implementation) are moved fromdebugtocoremodule.JetBrains/kotlin (org.jetbrains.kotlin:kotlin-stdlib-jdk7)
v2.1.0: Kotlin 2.1.0Changelog
Analysis API
New Features
KT-68603KotlinDirectInheritorsProvider: add an option to ignore non-kotlin resultsPerformance Improvements
KT-70757Performance problem in KaFirVisibilityChecker for KaFirPsiJavaClassSymbolFixes
KT-70437Class reference is not resolvableKT-57733Analysis API: Use optimizedModuleWithDependenciesScopes in combined symbol providersKT-72389K2: False positive "Redundant 'protected' modifier" for protected property inside protected constructor from private or internal classKT-69190K2: False-positive "redundant private modifier"KT-64984Analysis API: Support Wasm targetKT-70375K2: NPE at org.jetbrains.kotlin.analysis.api.fir.symbols.KaFirNamedClassSymbolBase.createPointerKT-71259K2 evaluator: Invalid smart cast info collecting for Code FragmentsKT-69360Lack of implicit receiver for the last statement under lambda in scriptsKT-70890Analysis API: Experiment with weak references to LL FIR/analysis sessions in session cachesKT-70657Analysis API: Inner types from classes with generics are incorrectly represented by the compiled jarsKT-71055Suspend calls inside 'analyze()' break the block guaranteesKT-70815Analysis API: Implement stop-the-world session invalidationKT-69819K2 IDE: LHS type in callable references is unresolved when it has type arguments and is qualifiedKT-68761Analysis API: Experiment with limited-size cache inKaFirSessionProviderKT-70384Analysis API Standalone: The same class in the same two renamed jars is unresolvedKT-71067Exceptions from references cancel Find UsagesKT-69535Redesign 'containingSymbol'KT-71025K2 IDE: Scopes in "importingScopeContext" have reversed ordering and "indexInTower" valuesKT-67483K2 IDE: Serializable plugin causes infinite resolve recursion when there is a star import from a class with annotation callKT-69416K2 IDE / Completion: “No classifier found” on simple value creatingKT-70257CCE: class kotlin.UInt cannot be cast to class java.lang.NumberKT-70376K2 IDE / Kotlin Debugger: IAE “Only componentN functions should be cached this way, but got: toString” on evaluating toString() method for value classKT-70264AA: service registration via XML fails with AbstractMethodError in Lint CLIKT-69950Analysis API: IntroduceisSubtypeOf(ClassId)KT-68625K2: “lazyResolveToPhase(STATUS)cannot be called from a transformer with a phase STATUS.”KT-67665K2: contract violation for value class with a constructor parameter with an implicit typeKT-67009Analysis API: Add abbreviated type tests for type aliases from source modulesKT-69977KaFirFunctionalType#getAbbreviation is always nullKT-68341Analysis API: Expanded function types from libraries don't have an abbreviated typeKT-68857Analysis API: Refactor annotationsKT-70386Do not filter out overloads from different libraries in dangling filesKT-65552K2: CANNOT_CHECK_FOR_ERASED in KtTypeCodeFragmentKT-65803K2: Analysis API: KtFirTypeProvider#getSubstitutedSuperTypes throws an exception in the case of "Wrong number of type arguments"KT-68896Support VirtualFile binary dependency inputs to Analysis API modulesKT-69395K2 IDE: incorrect overload selection from binary dependencies in a shared native source setKT-68573ISE: "Unexpected constant value (kotlin/annotation/AnnotationTarget, CLASS)" at Kt1DescUtilsKt.toKtConstantValue()KT-69576Analysis API: FIR implementation of "isImplicitReferenceToCompanion" returns false for companion references in implicit invoke operator callsKT-69568Analysis API: FIR implementation of "isImplicitReferenceToCompanion" returns true for non-companion references in qualified callsKT-69436Analysis API Platform: EncapsulateLLFirDeclarationModificationServiceas an engine serviceKT-63004K2: Analysis API: Design API for querying declarations generated by compiler plugins (similar to indices)KT-69452AA FIR: wrong source PSI after compile-time evaluationKT-69598AA: definitely not-null type at receiver position should be wrapped in parenthesisKT-60484Analysis API: add support for KtType pointers similar to KtSymbolPointerKT-68884Analysis API: Rename/deprecate/remove declarations as part of StabilizationKT-69453AA FIR: miss to handle expected type of lambda with explicit labelKT-69533Protect implementation parts of Analysis API with opt-in annotationsAnalysis API. FIR
Performance Improvements
KT-71566FirElementBuilder#getFirForNonKtFileElement should iterate a Psi file over and overKT-71224Analysis API:FirElementFinder.collectDesignationPathrelies on naive iteration through FIR filesFixes
KT-70327Analysis API: Batch inspection causes deadlock inValueWithPostComputeKT-69070Analysis API: Querying declared member scope for Java symbols results in exception in some use casesKT-68268LLSealedInheritorsProvider: reduce scope to kotlin filesKT-69671TYPES phase contract violation through JavaSymbolProviderKT-70624Declaration symbols from code fragments are treated as not localKT-70662NPE: FirLazyBodiesCalculatorKt.calculateLazyBodyForPropertyKT-70859Do not fail highlighting due to resolution problemsKT-70474FirLazyResolveContractViolationException from JavaSymbolProviderKT-70323FirLazyResolveContractViolationException:lazyResolveToPhase(TYPES)cannot be called from a transformer with a phase TYPESKT-71567LLFirCompilerRequiredAnnotationsTargetResolver should calculate annotation arguments on demandKT-71584getNonLocalContainingOrThisDeclarationtreats KtParameter from functional type as non-localAnalysis API. Light Classes
Performance Improvements
KT-69998Drop redundant cache from ClassInnerStuffCacheFixes
KT-69833Support value classesKT-71693Wrong name mangling for JvmField class property and companion property clashKT-71469KtLightClassForDecompiledDeclaration: missed kotlinOriginKT-70710Provide light classes for KMP modules in Android LintKT-70548SLC: text of class object access expression is not the same as raw textKT-70572SLC: missingisInheritorimplementation for type parameterKT-70491SLC: inconsistent source PSI of no-arg constructor for all default valuesKT-70458SLC: missedauxiliaryOriginalElementfor delegated propertyKT-70232Support a companion object inside value classesKT-70349@delegate:` annotations are missed for light class fieldsKT-68328Move KtLightClassBase to ULCAnalysis API. Providers and Caches
KT-65618K2: resulted FirClass.psi != requested PsiClass from completionKT-69292K2: Analysis API: A property'sMUST_BE_INITIALIZEDdiagnostic is not updated after changingfieldusage in an accessorKT-71468Drop redundant logic from LLFirJavaFacadeForBinariesKT-71700Cache result of resolveToCallKT-71520Analysis API:LLFirNativeForwardDeclarationsSymbolProviderspends a lot of time in indicesAnalysis API. Standalone
KT-65110Analysis API: In Standalone mode the order of symbols is unstableAnalysis API. Stubs and Decompilation
KT-71565KtClassOrObject should use isLocal from greenStubAnalysis API. Surface
New Features
KT-69960resolveToCallCandidatesshould support operatorsKT-69961resolveToCallCandidatesshould support propertiesPerformance Improvements
KT-70529KaSymbol: reduce the number ofcachedusagesKT-70165Introduce PSI-basedKaSymbols for K2Fixes
KT-69371Analysis API: expose only interfaces/abstract classes for the resolution APIKT-69696KaSymbolByFirBuilder should filter call-site substitutionsKT-69679KaDelegatedConstructorCall should have substituted signatureKT-70206anonymousSymbolAPI throws an exception for regular functionsKT-69699Receiver type is not substituted in the case of conflict declarationsKT-69381Analysis API: Investigate the viability of currentKaSymbolcachesKT-70199K2: ConcurrentModificationException at FirCallCompleter$LambdaAnalyzerImpl.analyzeAndGetLambdaReturnArgumentsKT-70661Invalid FirDeclarationOrigin ScriptTopLevelDestructuringDeclarationContainerKT-70663KaFirDestructuringDeclarationSymbol: Failed requirementKT-63490Analysis API: Accessing the AnalysConfiguration
📅 Schedule: Branch creation - "* 0-3 * * *" (UTC), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.