CHANGELOG
1.4-M1
Compiler
New Features
KT-4240
Type inference possible improvements: analyze lambda with expected type from the outer callKT-7304
Smart-casts and generic calls with multiple bounds on type parametersKT-7745
Support named arguments in their own position even if the result appears as mixedKT-7770
SAM for Kotlin classesKT-8834
Support function references with default values as other function typesKT-10930
Expected type isn't taken into account for delegated propertiesKT-11723
Support coercion to Unit in callable reference resolutionKT-14416
Support of @PolymorphicSignature in Kotlin compilerKT-16873
Support COERSION_TO_UNIT for suspend lambdasKT-17643
Inferring type of Pair based on known Map typeKT-19869
Support function references to functions with vararg if expected type ends with repeated vararg element typeKT-21178
Prohibit access of protected members inside public inline membersKT-21368
Improve type inferenceKT-25866
Iterable.forEach does not accept functions that return non-Unit valuesKT-26165
Support VarHandle in JVM codegenKT-27582
Allow contracts on final non-override membersKT-28298
Allow references to generic (reified) type parameters in contractsKT-31230
Refine rules for allowed Array-based class literals on different platforms: allow Array::class
everywhere, disallow Array<...>::class
on non-JVMKT-31244
Choose Java field during overload resolution with a pure Kotlin propertyKT-31734
Empty parameter list required on Annotations of function typesKT-33990
Type argument isn't checked during resolution partKT-33413
Allow ‘break’ and ‘continue’ in ‘when’ statement to point to innermost surrounding loopKT-34743
Support trailing comma in the compilerKT-34847
Lift restrictions from kotlin.Result
Fixes
KT-2869
Incorrect resolve with ‘unsafe call error’ and genericsKT-3630
Extension property (generic function type) does not workKT-3668
Infer type parameters for extension ‘get’ in delegated propertyKT-3850
Receiver check fails when type parameter has another parameter as a boundKT-3884
Generic candidate with contradiction is preferred over matching global functionKT-4625
Poor error highlighting when assigning not matched type to index operatorKT-5449
Wrong resolve when functions differ only in the nullability of generic typeKT-5606
“Type mismatch” in Java constructor call with SAM lambda and vararg
parameterKT-6005
Type inference problem in sam constructorsKT-6591
Overloaded generic extension function call with null argument resolved incorrectlyKT-6812
Type inference fails when passing a null instead of a generic typeKT-7298
Bogus type inference error in generic method call translated from JavaKT-7301
Type inference error in Kotlin code translated from JavaKT-7333
Type inference fails with star-projections in code translated from JavaKT-7363
Kotlin code with star-projections translated from Java does not typecheckKT-7378
3-dimension array type inference failKT-7410
Call resolution error appears only after adding non-applicable overloadKT-7420
Type inference sometimes infers less specific type than in JavaKT-7758
Type of lambda can't be inferedKT-8218
Wrong ‘equals’ for generic types with platform type and error typeKT-8265
Non-typesafe program is compiled without errorsKT-8637
Useless diagnostics for type parameters with unsafe nullabilityKT-8966
Smart casts don't work with implicit receiver and extension on type parameter with boundsKT-10265
Type inference problem when using sealed class and interfacesKT-10364
Call completeCall on variable before invoke resolutionKT-10612
java.util.Comparator.comparing type inferenceKT-10628
Wrong type mismatch with star projection of inner class inside use-site projected typeKT-10662
Smartcast with not-null assertionKT-10681
Explicit type arguments not taken into account when determining applicable overloads of a generic functionKT-10755
Not “least” common super-type is selected for nested ‘if’ result in presence of multiple inheritanceKT-10929
Type inference based on receiver type doesn't work for delegated properties in some casesKT-10962
Wrong resolution when argument has unstable DataFlowValueKT-11108
RxJava failed platform type inferenceKT-11137
Java synthetic property does not function for a type with projectionKT-11144
UninferredParameterTypeConstructor exception during buildKT-11184
Type inference failed for combination of safe-call, elvis, HashSet and emptySetKT-11218
Type inference incorrectly infers nullable type for type parameterKT-11323
Type inference failed in call with lambda returning emptyListKT-11331
Unexpected “Type inference failed” in SAM-conversion to projected typeKT-11444
Type inference failsKT-11664
Disfunctional inference with nullable type parametersKT-11894
Type substitution bug related platform typesKT-11897
No error REIFIED_TYPE_FORBIDDEN_SUBSTITUTION on captured typeKT-11898
Type inference error related to captured typesKT-12036
Type inference failedKT-12038
non-null checks and inferenceKT-12190
Type inference for TreeMap type parameters from expected type doesn't work when passing comparator.KT-12684
A problem with reified type-parameters and smart-castsKT-12833
‘it’ does not work in typed containers of lambdasKT-13002
“Error type encountered: UninferredParameterTypeConstructor” with elvis and whenKT-13028
cast with star on on type with contravariant generic parameter makes the compiler crashKT-13339
Type inference failed for synthetic Java property call on implicit smart cast receiverKT-13398
“Type T is not a subtype of Any”KT-13683
Type inference incorporation error when passed null into not-null parameterKT-13721
Type inference fails when function arguments are involvedKT-13725
Type inference fails to infer type with array as a generic argumentKT-13800
Type inference fails when null passed as argument (related to common system)KT-13934
Callable reference to companion object member via class name is not resolvedKT-13964
Unknown descriptor on compiling invoke operator call with generic parameterKT-13965
Invoke operator called on extension property of generic type has incorrect parameter typeKT-13992
Incorrect TYPE_INFERENCE_UPPER_BOUND_VIOLATEDKT-14101
Type inference failed on nullKT-14174
Compiler can't infer type when it should be able toKT-14351
Internal error with uninferred types for compiling complicated when expressionKT-14460
Smartcast isn't considered as necessary in the last expression of lambdaKT-14463
Missing MEMBER_PROJECTED_OUT error after smartcast with invokeKT-14499
Type inference fails even if we specify T
explicitlyKT-14725
kotlin generics makes agera's compiled repositories unusableKT-14803
Weird smart cast absence in lazy delegateKT-14972
Type inference failed: wrong common supertype for types with several subtypesKT-14980
Type inference for nullable type in if statementKT-15155
False “No cast needed” warning for conversion to star-projected typeKT-15185
Inference for coroutines not work in case where we have suspend function with new coroutine insideKT-15263
Kotlin can't infer the type of a multiple bounded methodKT-15389
Type inference for coroutines in 1.1-M04KT-15394
Support coercion to Unit for last statement for suspend lambdaKT-15396
Type inference for last statement in coroutineKT-15488
Type inference not working on generic function returning generic type in lambda resultKT-15648
Better use of overladed functions with nullablesKT-15922
TYPE_INFERENCE_CONFLICTING_SUBSTITUTION for function referenceKT-15923
Internal error: empty intersection for typesKT-16247
Overload resolution ambiguity with intersection types and method referencesKT-16249
Can't call generic method with overloaded method reference when non-generic overload existsKT-16421
Remove @ParameterName annotation from diagnostic messagesKT-16480
Wrong “Type mismatch” for variable as function callKT-16591
Type inferencing doesn't consider common base class of T of multiple Foo function parametersKT-16678
Overload resolution ambiguity on println()KT-16844
Recursive dependency] (DeferredType) error on code generation.KT-16869
Cannot infer type parameter S in fun <S, T : S?> f(x: S, g: (S) -> T): TKT-17018
“Rewrite at slice LEXICAL_SCOPE” for ‘when’ with function reference inside lambdaKT-17048
Compilation exception: error type encountered in some combination of when/elvis with multiple inheritanceKT-17340
Type inference failed on overloaded method reference with expected KFunctionKT-17386
Smart cast on LHS of callable reference doesn't work if expected type is nullableKT-17487
ReenteringLazyValueComputationException for interface with a subclass that has a property of interface typeKT-17552
Call completed not running for elvis as last expression in lambdaKT-17799
Smart cast doesn't work for callable reference (colon-colon operator)KT-17968
More type inference problems with Streams.collectKT-17995
No type mismatch with empty when
expression inside lambdaKT-18002
Issue with star projection for generic type with recursive upper boundKT-18014
Cannot use Comparator.comparingKT-18080
Type inference failed for generic method reference argumentKT-18192
Type inference fails for some nested generic type structuresKT-18207
Unexpected attempt to smart cast causes compile errorKT-18379
Type inference failed although explicit specifiedKT-18401
Type mismatch when inferring out type parameter (related to callable reference)KT-18481
ReenteringLazyValueComputationException for recursive const declaration without explicit typeKT-18541
Prohibit “tailrec” modifier on open functionsKT-18790
function take the parameterized type with multi-bounds can't workingKT-19139
Kotlin build error in Android Studio on << intent.putExtra(“string”, it.getString(“string”) >> inside “else if” blockKT-19751
Nested conditionals break type inference when multiple types are possible for the expressionKT-19880
An overload with nullable parameter is not resolved due to a smart cast attempt after assignmentKT-19884
type inference with type parameterKT-20226
Return type ‘Any’ inferred for lambda with early return with integer literal in one of possible return valuesKT-20656
Callable reference breaks smart cast for next statementKT-20734
Invalid “Smart-cast impossible” when there are applicable extension and semi-applicable memberKT-20817
Coroutine builder type inference does not take smart casts into account (confusing)KT-21060
ReenteringLazyValueComputationException during type inferenceKT-21396
if-else with a branch of type Nothing fails to infer receiver typeKT-21463
Compiler doesn't take into accout a type parameter upper bound if a corresponding type argument is in projectionKT-21607
Type inference fails with intermediate functionKT-21694
Type inference failed for ObservableListKT-22012
Kotlin type deduction does not handle Java's <? super T> constructsKT-22022
ReenteringLazyValueComputationException when having cyclic references to static variablesKT-22032
Multiple type parameter bounds & smart castsKT-22043
Report an error when comparing enum (==/!=/when) to any other incompatible type since 1.4KT-22070
Type inference issue with platform types and SAM conversionKT-22474
Type safety problem because of incorrect subtyping for intersection typesKT-22636
Anonymous function can be passed as a suspending one, failing at runtimeKT-22723
Inconsistent behavior of floating-point number comparisonsKT-22775
Type inference failed when yielding smartcasted not null value from sequence
KT-22885
Broken type safety with function variables caused by wrong subtyping check that includes intersection typesKT-23141
Cannot resolve between two functions when only one of them accepts nullable parameterKT-23156
IDEA asking me to remove uninferable explicit type signatureKT-23391
Bogus type inference error with smart cast, synthetic property and star projectionKT-23475
Implicit invoke on property with generic functional return type resolves incorrectlyKT-23482
Incorrect frontend behaviour for not inferred type for generic property with function type as resultKT-23677
Incorrect error diagnostic for return types that coerced to ‘Unit’ inside lambdaKT-23748
Erroneous type mismatch when call with @Exact annotation depends on non-fixed type variableKT-23755
Nested lambdas with nested types can cause false USELESS_CAST warningKT-23791
Explicit type argument leads to an error, while candidate is picked correctly without itKT-23992
Target prefixes for annotations on supertype list elements are not checkedKT-24143
Type-checking error for generic functionsKT-24217
Type inference for generic functions reference problem.KT-24237
Uninferred type parameter on variable with multiple smart casts in elvisKT-24317
Unnecessary non-null assertion inspection shownKT-24341
Compiler exception instead of error about “upper bound violated”KT-24355
Overload resolution ambiguity due to unstable smartcastKT-24458
Cannot solve “Conditional branch result is implicitly cast to Any” with ListKT-24493
Incorrect error about Array unsupportedKT-24886
Type inference failure in an if-else_if-elseKT-24918
type inference not good enough for return type with involved if statementKT-24920
Type inference failure when using RxJava composeKT-24993
Inference for buildSequence/yield doesn't work for labeled lambdasKT-25063
List of Arrays - wrong type inferred if nullable involvedKT-25268
Incorrect type inference (least upper bound of the types) in exhaustive when for NumberKT-25294
Reactors Mono map function with KotlinKT-25306
Make f(a = arrayOf(x)) equivalent to f(a = *arrayOf(x))KT-25342
Type inference: lazy with generic fails to inferKT-25434
Too eager smartcast cause type mismatchKT-25585
“Rewrite at slice LEXICAL_SCOPE” for if
expression with callable reference inside lambdaKT-25656
Short-hand array literal notation type inference fails in nested annotationsKT-25675
return when
leads to compiler errorKT-25721
Type inference does not work in nested try catchKT-25827
NullPointerException in setResultingSubstitutor with a generic base classKT-25841
Collection type is inferred as Collection if the values returned from map
function have an intersection common typeKT-25942
Pass a parameter to generic function with several upper boundsKT-26157
Failed type inference for Delegates.observable
parameter with a nullable propertyKT-26264
No smart cast on implicit receiver extension function callKT-26638
Check for repeatablilty of annotations doesn't take into account annotations with use-site targetKT-26698
OnlyInputTypes doesn't work in presence of upper bound constraintKT-26704
Correct variable-as-function call fails to compile in case of function type dependent on variable typeKT-27440
Infer lambda parameter type before lambda analysis in common systemKT-27464
False negative type mismatch when a non-null assertion is used on a top-level var
mutable variableKT-27606
Incorrect type inference when common supertype of enum classes is involvedKT-27722
mapNotNull on List<Result> fails if T is not subtype of AnyKT-27781
ReenteringLazyValueComputationException for anonymous object property referring to itself in overridden methodKT-27799
Prohibit references to reified type parameters in annotation arguments in local classes / anonymous objectsKT-28083
Nothing-call smart cast of a variable that a lambda returns does not affect the lambda's return typeKT-28111
Type inference fails for return type of lambda with constrained genericKT-28242
Not-null assertion operator doesn't affect smartcast typesKT-28264
Resulting type of a safe call should produce type that is intersected with AnyKT-28305
“Error type encountered” with elvis operator, type argument and explicit Any
typeKT-28319
“resultingDescriptor shouldn't be null” for a star projection base classKT-28334
Smartcast doesn't work if original type is type with star projection and there was already another smartcastKT-28370
Var not-null smartcasts are wrong if reassignments are used inside catch section (in try-catch) or try section (in try-finally)KT-28424
Type annotations are not analyzed properly in several casesKT-28584
Complex condition fails smart castKT-28614
“Error type encountered: UninferredParameterTypeConstructor”KT-28726
Recursion in type inference causes ReenteringLazyValueComputationExceptionKT-28837
SAM conversion doesn't work for arguments of members imported from objectKT-28873
Function reference resolution ambiguity is not reportedKT-28999
Prohibit type parameters for anonymous objectsKT-28951
“Error type encountered” with elvis operator, type argument and explicit Any
typeKT-29014
Unclear diagnostic for conditional branches coercion with multiple root interfaces and no common superclassKT-29079
ByteArray.let(::String)
can not compile as the callable reference is resolved before the outer callKT-29258
Incorrect return type is used for analysis of an extension lambda (if its type is used as a generic parameter)KT-29330
NI: Multiple duplicate error messages in IDE popup with lambda argumentKT-29402
Missed INLINE_FROM_HIGHER_PLATFORM diagnostic if inline function called from Derived classKT-29515
type inference fails to infer T of KFunction0 for most typesKT-29712
Incorrect compiler warning, “No cast needed” for recursive type boundKT-29876
ReenteringLazyValueComputationException with usage of property inside lambda during assignment to that propertyKT-29911
Not-null smart cast fails inside inline lambda after safe call on generic variable with nullable upper boundKT-29943
Callable reference resolution ambiguity between a property and a function is reported incorrectly in function calls expecting KProperty1KT-29949
Cannot chose among overload as soon as nullable type is involvedKT-30151
Any instead of Number is inferred as common super type of Int and DoubleKT-30176
Compiler can't infer correct type argument which blocks overload resolutionKT-30240
Can't infer intersection type for a type variable with several boundsKT-30278
Retain star projections in typeOfKT-30394
Different behaviour in type inferences (bug in the old inference) when cast of variable of nullable type parameter to not-null is usedKT-30496
Wrong infix generic extension function is chosen for null
receiverKT-30550
Suspend modifier on a functional type changes resolution of return typeKT-30892
IllegalStateException(UninferredParameterTypeConstructor) with return references to local function from if-else expressionKT-30947
No smart cast on accessing generic class member with upper-bounded type argumentKT-31102
Type mismatch in mixing lambda and callable referenceKT-31151
“IllegalStateException: Error type encountered” with elvis, when and inheritanceKT-31219
Type mismatch for delegated property depending on anonymous objectKT-31290
overload resolution ambiguity with Iterable.mapTo()KT-31352
JvmName can't eliminate platform declaration clash of annotated propertiesKT-31532
Type inference for complex last expression in lambdaKT-31540
Change initialization order of default values for tail recursive optimized functionsKT-31594
No SETTER_PROJECTED_OUT diagnostic on synthetic properties from JavaKT-31630
TYPE_INFERENCE_PARAMETER_CONSTRAINT_ERROR for generic function with callable reference argumentKT-31654
False unnecessary non-null assertion (!!) warning inside yield callKT-31679
NI: Unresolved reference with delegated property and anonymous objectKT-31739
Overload resolution ambiguity in generic function call with lambda arguments that take different parameter typesKT-31923
Outer finally block inserted before return instruction is not excluded from catch interval of inner try (without finally) blockKT-31968
New inference is using a more common system to infer types from nested elvis call than OIKT-31978
NI: changed precedence of elvis operator relative to equality operatorKT-32026
Infer return type of @PolymorphicSignature method to void if no expected type is givenKT-32087
“Remove explicit type arguments” inspection when function creates a lambda that calls a function with type argumentKT-32097
NI: NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE when using awaitClose in channelFlow builderKT-32098
Kotlin 1.3.40 type inference mismatch between the IDE and the compilerKT-32151
Return arguments of lambda are resolved in common system while in OI aren'tKT-32165
Cannot use ‘Nothing’ as reified type parameter,KT-32196
Inconsistency between compiler and inspection with mapNotNullKT-32203
NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE warning false-positiveKT-32249
New inference breaks generic property delegate resolutionKT-32250
New Type Inference fails for nullable fieldKT-32262
Type inference failed in presence of @JvmSuppressWildcardsKT-32267
NI: “Overload resolution ambiguity. All these functions match.” with KFunctionKT-32284
False positive “Redundant lambda arrow” with extension function returning generic with lambda type argumentKT-32290
New Inference: old inference fails on nullable lambda from if-expressionKT-32306
False positive Remove explicit type arguments
when using generic return argument from lambda for delegated propertyKT-32358
NI: Smart cast doesn't work with inline function after elvis operatorKT-32383
NI: listOf(…) infers to invalid type if different enums implementing the same interface are involvedKT-32397
OI can't infer types when there are different lower and upper bounds in common systemKT-32399
OI can't choose candidate with different lower and upper boundsKT-32425
No coercion to Unit by a return type of callable expression argumentKT-32431
Nothing inferred for upper bound in parametric classKT-32449
IDE fails to report error: Expected type mismatchKT-32462
NI: “AssertionError: No resolved call” with callable referenceKT-32497
Compiler Type inference fails when inferring type parameters (“Generics”) - IDE inference worksKT-32507
IntelliJ Kotlin plugin not recognizing smart cast to non-nullable typeKT-32501
type inference should infer nullable type if non-nullable doesn't workKT-32527
Cast required for Sequence.map when mapping between disjoint typesKT-32548
OVERLOAD_RESOLUTION_AMBIGUITY with platform generic typesKT-32595
NI: Overload resolution ambiguity for member function with type parameter with upper bounds and lambda parameterKT-32598
Kotlin 1.3.41 type inference problemKT-32654
Non-applicable call for builder inference with coroutinesKT-32655
Kotlin compiler and IDEA plugin disagree on typeKT-32686
New type inference algorithm infers wrong type when return type of when
expression has a type parameter, and it's not specified in all casesKT-32788
No smartcast for an implicit “this” in old inferenceKT-32792
Bug in new type inference algorithm for Android StudioKT-32800
Problem with inlined getValue in Delegates, IDEA does not detect problem, but code doesn't compileKT-32802
Odd behaviour with smart-casting in exception blockKT-32850
Invalid suggestion in Kotlin codeKT-32866
tests in Atrium do not compile with new type inferenceKT-33012
Proper capturing of star projections with recursive typesKT-33102
Fake overrides aren't created for propertiesKT-33152
Type inference fails when lambda with generic argument type is presentKT-33166
NI: TYPE_MISMATCH for specific case with when
expression and one branch throwing exceptionKT-33171
TYPE_INFERENCE_NO_INFORMATION_FOR_PARAMETER with object convention invoke direct call on property delegationKT-33240
Generated overloads for @JvmOverloads on open methods should be finalKT-33545
NI: Error type encountered: NonFixed: TypeVariable(T) (StubType)KT-33988
Low priority candidates doesn't match when others failKT-34128
Internal compiler error ReenteringLazyValueComputationException in the absence of right parenthesisKT-34140
Function with contract doesn't smartcast return value in lambdaKT-34314
There is no an error diagnostic about type inference failed (impossible to infer type parameters) on callable referencesKT-34335
A lambda argument without a type specifier is inferred to Nothing, if it's passed to a function, declaration of which contains vararg (e.g. Any)KT-34501
if-expression infers Any
when Number?
is expectedKT-34708
Couldn't transform method node: emit$$forInline (try-catch in a Flow.map)KT-34729
NI: type mismatch error is missed for generic higher-order functionsKT-34830
Type inference fails when using an extension method with “identical JVM signature” as method referenceKT-34857
“Illegal resolved call to variable with invoke” with operator resolved to extension property invoke
KT-34891
CompilationException: Failed to generate expression: KtLambdaExpression (Error type encountered)KT-34925
MPP, IDE: False positive warning NO_REFLECTION_IN_CLASS_PATH in common codeKT-35020
“Type checking has run into a recursive problem” for overloaded generic function implemented using expression body syntaxKT-35064
NI: The new inference has overload resolution ambiguity on passing a callable reference for extension functions (> 1 candidates)KT-35207
Incorrect generic signature in annotations when KClass is used as a generic parameterKT-35210
NI: OnlyInputTypes check fails for types with captured onesKT-35213
NI: overload resolution ambiguity for callable reference with defined LHSKT-35226
Forbid spread operator in signature-polymorphic callsKT-35306
Non-applicable call for builder inference
for nested builder functions which return generic types that are wrapped.KT-35337
IllegalStateException: Failed to generate expression: KtLambdaExpressionKT-35398
NI, IDE: Duplicate warning message JAVA_CLASS_ON_COMPANION in argument positionKT-35469
Change behavior of signature-polymorphic calls to methods with a single vararg parameter, to avoid wrapping the argument into another arrayKT-35487
Type safety problem because of lack of captured conversion against nullable type argumentKT-35494
NI: Multiple duplicate error diagnostics (in IDE popup) with NULL_FOR_NONNULL_TYPEKT-35514
Type inference failure with out
type and if-else inside lambdaKT-35517
TYPE_MISMATCH error duplication for not Boolean condition in if-expressionKT-35535
Illegal callable reference receiver allowed in new inferenceKT-35578
Diagnostics are sometimes duplicatedKT-35602
NI doesn't approximate star projections properly for self typesKT-35658
NI: Common super type between Inv<A!>, Inv<A?> and Inv is Inv<out A?>, not Inv<A!> (as old inference)KT-35668
NI: the lack of fixing to Nothing problem (one of the bugs: the lack of smartcast through cast of Nothing? to Nothing after elvis)KT-35679
Type safety problem because several equal type variables are instantiated with a different typesKT-35684
NI: “IllegalStateException: Expected some types” from builder-inference about intersecting empty types on trivial codeKT-35814
Inference fails to infer common upper type for java typesKT-35834
Do not declare checked exceptions in JVM bytecode when using delegation to Kotlin interfacesKT-35920
NI allows callable references prohibited in old inferenceKT-35943
NI: IllegalStateException: No error about uninferred type parameterKT-35945
Using Polymorphism and Type Inference the compiler fails having a Type with Type with TypeKT-35992
Wrong overload resolution with explicit type arguments if KFunction and type parameter once nullable and once non-nullableKT-36001
“IllegalStateException: Error type encountered” with elvis in generic functionKT-36002
KotlinFrontEndException: Exception while analyzing expressionKT-36065
Type inference failed for generic function invoked on implicitly nullable variable created from JavaKT-36066
Type inference problem in compilerKT-36101
False positive IMPLICIT_NOTHING_AS_TYPE_PARAMETER with suspend lambdasKT-36146
Drop support of language version 1.0/1.1, deprecate language version 1.2KT-36192
Redundant smart cast for overloaded functionsKT-36202
NI: false positive “NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE” with elvis operator in lambdaKT-36220
NI: false positive NON_APPLICABLE_CALL_FOR_BUILDER_INFERENCE if one use cannot resolveKT-36221
NI: UnsupportedOperationException: “no descriptor for type constructor” with vararg parameter when set
or get
methods of element passed as function referenceKT-36264
NI: unstable smart cast changes results of call resolutionKT-36279
OI: Type inference fails when omitting explicit name of the lambda parameterKT-36298
Failure to resolve return type of extension property on function literalKT-36317
TYPE_MISMATCH diagnostic error duplication for not Boolean condition in do-while-loop-statementKT-36338
Forbid IR backend usage with unsupported language / API versionKT-36371
Incorrect null check with NI and builder inference in generic contextKT-36644
Stop discrimination of prerelease compiler version in Kotlin pluginKT-36745
NI: “Expected some types” with unresolved class referenceKT-36776
Treat special constructions (if, when, try) as a usual calls when there is expected typeKT-36818
NI: the lack of smartcast from Nothing returning “when” branchKT-37123
Cycling lambda signature errors in Observable.combineLatestKT-37146
Type inference can't resolve plus operatorKT-37189
Wrong type inferred with class with two types as argumentKT-37295
NI: Passing function with wrong returning type by reference is not shown as errorKT-37345
Wrong non-null type assertion when using Sequence and yieldKT-37429
Type inference failed: Not enough information to infer parameter with java streamsKT-37480
“None of the following candidates can be called” when compiling but no error in IDEA
IDE
KT-33573
IDE runs platform-specific checkers on common code even if the project doesn't target the corresponding platformKT-35823
IDE settings: deprecated values of language / API version look like regular onesKT-35871
NPE in LightMethodBuilderKT-36034
Kotlin 1.3.70 creates file kotlinCodeInsightSettings.xml
with user-level settings under .ideaKT-36084
“Join lines” should remove trailing commaKT-36460
IDE highlighting: Undo on inspection breaks analysis inside top-level property initializerKT-36712
Use new annotation highlighting APIKT-36917
Caret has incorrect position after pressing enter on line with named argument
IDE. Code Style, Formatting
KT-36387
Formatter: “Chained Function Calls” formats property chainsKT-36393
Incorrect trailing comma insertion for boolean operator expressionKT-36466
Formatter: “Chained Function Calls” with “Wrap first call” wrap single method call
IDE. Completion
KT-16531
Error type displayed in completion for the result of buildSequenceKT-32178
Autocompletion of ‘suspend’ should not add the ‘fun’ keyword when writing a function typeKT-34582
Remove kotlin.coroutines.experimental from autocompletionKT-35258
Completion problems with enabled MixedNamedArgumentsInTheirOwnPosition
feature
IDE. Debugger
KT-12016
Step over inside inline function lambda argument steps into inline function bodyKT-14296
Can't step over inlined functions of iteratorKT-14869
Debugger: always steps into inlined lambda after returning from functionKT-15652
Step over inline function call stops at Thread.dispatchUncaughtException() in case of exceptionsKT-34905
Debugger: “Step over” steps into inline function body if lambda call splitted on several linesKT-35354
ClassCastException in evaluate window
IDE. Gradle. Script
KT-36703
.gradle.kts: Change text for out of project scripts
IDE. Hints
KT-37537
IDE is missing or swallowing keystrokes when hint popups are displayed
IDE. Hints. Parameter Info
KT-14523
Weird parameter info tooltip for map.getValue type arguments
IDE. Inspections and Intentions
New Features
KT-33384
Intention to switch between single-line/multi-line lambdaKT-34690
Support intention Convert lambda to reference
for qualified referencesKT-35639
False negative inspection “redundant internal modifier” inside private classKT-36256
Implement migration for WarningOnMainUnusedParameterKT-36257
Implement migration for ProhibitRepeatedUseSiteTargetAnnotationsKT-36258
Implement migration for ProhibitUseSiteTargetAnnotationsOnSuperTypesKT-36260
Implement migration for ProhibitJvmOverloadsOnConstructorsOfAnnotationClassesKT-36261
Implement migration for ProhibitTypeParametersForLocalVariablesKT-36262
Implement migration for RestrictReturnStatementTarget
Fixes
KT-14001
“Convert lambda to reference” results in failed type inferenceKT-14781
Import of aliased type is inserted when deprecation replacement contains typealiasKT-16907
“Convert to lambda reference” intention is erroneously shown for suspending lambda parameters, producing bad codeKT-24869
False positive inspection “Redundant ‘suspend’ modifier”KT-24987
Implicit (unsafe) cast from dynamic to DONT_CAREKT-27511
“Remove explicit type arguments” suggestion creates incorrect codeKT-28415
False positive inspection “Remove explicit type arguments” with a callable referenceKT-30831
False positive Remove explicit type arguments
with generic type constructor with init blockKT-31050
False positive “Boolean literal argument without parameter name” inspection using expect classKT-31559
Type inference failed: Not enough information to infer parameter KKT-32093
NI: IDE suggests to use property access syntax instead of getter methodKT-33098
False positive “Remove explicit type arguments” with “Enable NI for IDE” and Java generic class constructor invocation with nullable argumentKT-33685
ReplaceWith does not add type parameter for function taking generic lambda with receiverKT-34511
kotlin.KotlinNullPointerException after using intention Replace Java Map.forEach with Kotlin's forEach for Map with Pairs as keysKT-34686
False positive “Constructor parameter is never used as a property” if property is used as a referenceKT-35451
Type inference fails after applying false positive inspection "Remove explicit type arguments "KT-35475
Applying intention “Redundant curly braces in string template” for label references change semanticKT-35528
Intention Replace 'when' with 'if'
produces wrong code if expression subject is a variable declarationKT-35588
Applying “Lift assignment out of ‘if’” for if statement that has lambda plus assignment and ‘return’ leads to type mismatchKT-35604
Too long quickfix message for “modifier ‘open’ is not applicable to ‘companion object’”KT-35648
False negative intention “Remove argument name” on named positional argumentsKT-36160
False positive “Constructor has non-null self reference parameter” with vararg parameter of classKT-36171
intention “Replace ‘get’ call with indexing operator” works incorrectly with spread operatorKT-36255
Implement migration tool for 1.4KT-36357
“Lift assignment out of ‘if’” breaks code for oneliner functionKT-36360
OI: False positive “remove explicit type arguments” for SequenceScope leads to compiler failure with “Type inference failed”KT-36369
“To raw string literal” intention is not available if string content starts with newline symbol \n
IDE. Multiplatform
KT-36978
Infinite “org.jetbrains.kotlin.idea.caches.resolve.KotlinIdeaResolutionException: Kotlin resolution encountered a problem while analyzing KtFile” exceptions in hierarchical multiplatform projects
IDE. Navigation
KT-30628
Navigation from Java sources to calls on Kotlin function annotated with @JvmOverloads that have optional arguments omitted leads to decompiled code
IDE. Refactorings
New Features
KT-26999
Inspection for unused main parameter in Kotlin 1.3KT-33339
Refactor / Move is disabled for Kotlin class selected together with Kotlin file
Fixes
KT-22131
“Extract method” refactoring treats smart casted variables as non-localKT-24615
“Extract property” generates useless extension propertyKT-26047
Refactor -> Rename: Overridden method renaming in generic class doesn't rename base methodKT-26248
“Refactor -> Inline variable” breaks callable referencesKT-31401
Refactor / Inlining function reference in Java method with Runnable argument produces compile errorKT-33709
Inline variable: NONE_APPLICABLE with overloaded generic Java method with SAM conversionKT-34190
Inline Function: False positive error “not at the end of the body” with anonymous objectKT-35235
Unable to move multiple class files to a different packageKT-35463
ClassCastException during moving .kt file with one single class to the other folder in Android StudioKT-36312
Refactor Move refactoring to get it ready for MPP-related fixes
IDE. Run Configurations
KT-34503
“Nothing here” is shown as a drop-down list for “Run test” gutter icon for a multiplatform test with expect/actual parts in platform-agnostic codeKT-36093
Running Gradle java tests are broken for Gradle older than 4.0 (Could not set unknown property ‘testClassesDirs’ for task ‘:nonJvmTestIdeSupport’)
JavaScript
KT-23284
Reified type arguments aren't substituted when invoking inline val value
Libraries
KT-26654
Remove deprecated ‘mod’ operatorsKT-27856
Add contracts to Timing.kt lambdasKT-28356
Fail fast in Regex.findAll on an invalid startIndexKT-29748
Declare kotlin.reflect.KType in kotlin-stdlib-commonKT-30360
Deprecate conversions of floating point types to integral types lesser than IntKT-32855
KTypeParameter is available in common code, but not available in NativeKT-35216
<T : AutoCloseable?, R> T.use and <T : Closeable?, R> T.use should have contractsKT-36082
JS Regex.find does not throw IndexOutOfBoundsException on invalid start indexKT-36083
Extract kotlin.coroutines.experimental.* packages to a separate compatibility artifact
Reflection
KT-30071
Implement KTypeProjection.toStringKT-35991
Embed Proguard/R8 rules in kotlin-reflect artifact jar
Tools. CLI
KT-28475
java.sql module not available in kotlinc scripts on Java 9+ due to use of Bootstrap Classloader
Tools. Gradle. JS
KT-34989
NodeJs is not re-downloaded if the node binary gets accidentally deletedKT-35465
Gradle, JS: Gradle tooling for IR compilerKT-36472
Kotlin/JS Gradle plugin iterates over all Gradle tasks, triggering their lazy configurationKT-36488
Gradle, JS, IR: Publishing from JS plugin
Tools. Gradle. Multiplatform
KT-37264
In intermediate common source sets, internals are not visible from their dependsOn source sets during Gradle build
Tools. Gradle. Native
KT-36804
In a project with Kotlin/Native targets and kotlinx.serialization, IDE import fails: Could not create task ‘...’. / Cannot change dependencies of configuration after it has been resolved.
Tools. J2K
KT-20120
J2K: Java 9 forRemoval
and since
methods of Deprecated
are not processed
Tools. Scripts
KT-35414
Switch for -Xexpression
to -expression
/-e
cli argument syntax for JVM cli compiler in 1.4