Jinseong Jeon
5a3367e09c
FIR: initial support of suspend conversion for function reference
2020-07-28 13:37:05 +03:00
Victor Petukhov
cca64b8fab
NI: use the inferred type to check of nullable array for vararg
...
^KT-40555 Fixed
2020-07-27 18:24:31 +03:00
Denis Zharkov
dc6efa5a61
Fix incorrect handling of mixed named/positional arguments
...
^KT-40404 Fixed
2020-07-24 13:36:52 +03:00
Jinseong Jeon
7872b21914
FIR: handle object invoke via type alias
2020-07-23 09:34:42 +03:00
Pavel Kirpichenkov
710659324c
[NI] Fix common supertype of types with error supertypes
...
Enable check for error supertypes during CST calculation in classic type system context.
Cyclic upper bound + known type parameters of superclasses may create non-error types
with error supertypes. Such types don't have common constructors with other normal types
and cause assertion errors during intersection.
^KT-36951 Fixed
2020-07-22 11:41:42 +03:00
Denis Zharkov
037ff2fa52
Fix incorrect handling of @NotNull type parameters
...
^KT-36770 In progress
^KT-40114 Relates
^KT-28785 Relates
2020-07-22 10:16:14 +03:00
Victor Petukhov
b0ac046b05
NI: decrease fixation priority for variables which have only incorporated from upper bound constraints
...
^KT-40045 Fixed
^KT-39633 Fixed
2020-07-20 19:20:18 +03:00
Dmitriy Novozhilov
236dfe60f1
[FIR] Correctly build scopes for resolve of different parts of constructors
...
#KT-40409 Fixed
2020-07-20 14:38:17 +03:00
Dmitriy Novozhilov
cedd1c133e
[FIR] Match type in super<type> access with actual supertypes of class
2020-07-20 14:38:16 +03:00
Dmitriy Novozhilov
1ce4eca3a6
[FIR] Infer type arguments for captured parameters of inner classes
...
KT-38992
2020-07-20 14:38:16 +03:00
Mikhail Zarechenskiy
4083111dab
Fix SAM conversion when lambda is the last expression of another lambda
...
#KT-39691 Fixed
2020-07-20 14:30:40 +03:00
Mikhail Zarechenskiy
a15d3c76b6
Fix references to sam adapted functions, also fix lookup location
...
#KT-31025 Fixed
2020-07-20 14:30:40 +03:00
Mikhail Zarechenskiy
0c79de1a98
Prohibit adapted reference resolve against reflective types
...
There are design questions about reflection for adapted references,
so the current proposal is to prohibit reflection on them and support
it properly later
#KT-40406 Fixed
2020-07-20 14:30:39 +03:00
Denis Zharkov
cd896ae6c8
FIR: Implement FE 1.0 semantics for super unqualified calls
...
See original logic at org.jetbrains.kotlin.types.expressions.unqualifiedSuper.UnqualifiedSuperKt#resolveUnqualifiedSuperFromExpressionContext
^KT-39070 Fixed
^KT-39599 Related
2020-07-20 12:24:51 +03:00
Jinseong Jeon
4e14f9500f
FIR: account for vararg when creating KFunction type for callable reference
2020-07-20 09:39:34 +03:00
Mikhail Zarechenskiy
e5e50eabe9
Update testdata after 41a0cfe002
2020-07-20 07:04:59 +03:00
Nick
41a0cfe002
[FIR] Add diagnostic UPPER_BOUND_VIOLATED
2020-07-16 19:04:22 +03:00
Victor Petukhov
e754585e38
NI: add fallback strategy to get lexical scope to checking coroutine call legality
...
^KT-40247 Fixed
^KT-40337 Fixed
2020-07-16 15:33:27 +03:00
Jinseong Jeon
50f1f8f0eb
FIR: consider more functional types during SAM resolution
2020-07-16 12:56:18 +03:00
Ivan Kylchik
85e822e283
[FIR] Support smartcast after reference equality check
...
#KT-39000 Fixed
2020-07-16 12:43:55 +03:00
Mikhail Zarechenskiy
100a6f70ca
Relax rules about inferring to Nothing for special calls
...
#KT-37388 Fixed
#KT-38427 Fixed
#KT-39953 Fixed
#KT-38899 Fixed
2020-07-16 09:56:46 +03:00
Victor Petukhov
b0c96a61ec
Don't try to infer postponed variables on lambdas without BuilderInference annotation
...
^KT-39618 Fixed
2020-07-15 16:19:43 +03:00
Mikhail Zarechenskiy
bb23556ead
Don't perform Unit-conversion for functional types with type variables
...
#KT-40269 Fixed
2020-07-14 13:05:28 +03:00
Mikhail Zarechenskiy
09b44b3189
Fix rewrite at slice exception for callable references inside flatMap
...
#KT-40254 Fixed
2020-07-14 13:05:28 +03:00
Mikhail Zarechenskiy
8158ba2be3
Add tests for obsolete issues
...
#KT-32183 Obsolete
#KT-31474 Obsolete
#KT-31853 Obsolete
2020-07-14 11:23:57 +03:00
Nick
67e58ff152
[FIR] Fix redundant calls to firEffectiveVisibility()
2020-07-13 16:30:47 +03:00
Mikhail Zarechenskiy
678b76cab1
Fix presence of Deprecated hidden annotation for reference arguments
...
#KT-40234 Fixed
2020-07-13 11:23:28 +03:00
Mikhail Zarechenskiy
0c8b847ae6
Introduce compiler key to disable compatibility resolution mechanism
...
Enable it if one was using new inferene before 1.4
#KT-40128 Fixed
#KT-40112 Fixed
#KT-40113 Fixed
2020-07-10 14:23:45 +03:00
Mikhail Zarechenskiy
2bb9838a80
Add test for obsolete issue
...
The problem was fixed in d51bb2c053
#KT-37692 Obsolete
2020-07-08 15:30:20 +03:00
Dmitriy Novozhilov
a5bfa3ae63
[FIR-TEST] Update broken testdata
2020-07-08 12:13:33 +03:00
Dmitriy Novozhilov
58af8d68a1
[FIR] Check for isFun flag in SAM resolution
2020-07-08 12:13:32 +03:00
Dmitriy Novozhilov
29849b1330
[FIR] Resolve rhs of += in dependent context
2020-07-08 12:13:31 +03:00
Juan Chen
d163853c97
[FIR] add support for implementation by delgation
...
This commit handles "subclass: super-interface by delegate-expression".
During Psi2Fir, for each delegate, we add to the subclass a synthetic
field (which has type super-interface), and an assignment of the
delegate-expression to the synthetic field in the primary constructor,
so that the delegate-expression can be resolved and transformed along
the way.
During Fir2Ir, we look up delegatable members from the super-interface
and generate corresponding functions/properties for the subclass.
TODO: support for generic delegatable members and generic
super-interface.
2020-07-08 09:42:24 +03:00
Nick
a5f34a880c
[FIR] Fix computeTypeArguments() & add diagnostic for type args
2020-07-07 15:52:17 +03:00
Victor Petukhov
eec3a4720c
NI: don't collect members if a receiver type is StubType to avoid creating error candidates instead of not crating them at all
...
^KT-37717 Fixed
2020-07-07 11:17:06 +03:00
Dmitriy Novozhilov
a0f8ada285
[FIR-TEST] Unmute failing diagnostic tests
2020-07-06 12:11:57 +03:00
Mikhail Zarechenskiy
0ee7306d9c
Fix coercion to Unit when variable already have other constraints
...
Don't add `Unit` if variable has an upper constraint T <: A.
It's impossible to coerce variable T to Unit as constraint system will
be always contradictory: T := Unit => Unit should be subtype of A
#KT-39900 Fixed
2020-07-03 17:54:14 +03:00
Mikhail Zarechenskiy
d51bb2c053
Add compatibility resolve when variable has "bad" intersection type
...
#KT-39468 Fixed
2020-07-03 12:18:28 +03:00
Ivan Kylchik
92a51b9794
[FIR] Add illegal underscore check in BaseFirBuilder
2020-07-03 12:06:49 +03:00
Alexander Udalov
ba948cda38
Report warning on characters which can cause problems on Windows
...
As soon as we fix KT-17438, this warning will be turned into an error.
2020-07-02 21:19:28 +02:00
Dmitriy Novozhilov
102c9c08d0
[FIR] Resolve elvis call as special synthetic call
...
Before that commit we desugared `a ?: b` as
when (val elvis = a) {
null -> b
else -> elvis
}
It was incorrect, because `a` should be resolved in dependent mode,
but when it was `elvis` initializer it was resolved in independent
mode, so we can't infer type for `a` in some complex cases
2020-07-02 15:10:51 +03:00
Dmitriy Novozhilov
624b9306f0
[FIR] Resolve LHS of type operator call in independent context
...
#KT-39046 Fixed
2020-07-02 15:10:51 +03:00
Dmitriy Novozhilov
309050d956
[FIR] Add ExtensionFunctionType attribute
...
#KT-39034 Fixed
2020-06-30 11:30:19 +03:00
Mikhail Zarechenskiy
a2da00eb49
Prohibit using DeprecatedSinceKotlin outside kotlin subpackage
2020-06-29 14:25:08 +03:00
Mikhail Zarechenskiy
790433984b
Prohibit using DeprecatedSinceKotlin annotation without arguments
2020-06-29 14:25:08 +03:00
Mikhail Zarechenskiy
67100d5ebe
Reject values of DeprecatedSince.. that are not parseable as a version
2020-06-29 14:25:07 +03:00
Mikhail Zarechenskiy
5d88058928
Place DeprecatedSinceKotlin annotation under 1.4 version
2020-06-29 14:25:06 +03:00
Mikhail Zarechenskiy
2f55a3fa0d
Add various test for DeprecatedSinceKotlin annotation
2020-06-29 14:23:26 +03:00
Mikhail Zarechenskiy
158013ef3a
Remove message and replaceWith parameters from DeprecatedSinceKotlin
2020-06-29 14:22:33 +03:00
Mikhail Zarechenskiy
60c51476f2
Introduce declaration checker for DeprecatedSinceKotlin annotation
...
- DeprecatedSinceKotlin annotation should only be applicable when
there's `@Deprecated` annotation on the same declaration
- Deprecation level shouldn't be specified in the relevant
`@Deprecated` annotation
- Check that warningSince <= errorSince <= hiddenSince
2020-06-29 14:22:32 +03:00