Dmitriy Novozhilov
c80cfb0fdb
[FIR] Replace single supertype scope with list of scopes of supertypes in use site scopes
...
This big refactoring is needed to cleanup building of overrides
mappings and prevent creating redundant intersection overrides in
cases when there is no need in them:
```kotlin
interface A {
fun foo()
}
interface B {
fun foo()
}
interface C : A, B {
override fun foo()
}
```
Before this refactoring there was next override tree:
C.foo
intersection override (A.foo, B.foo)
A.foo
B.foo
Also this commit fixes special mapping of overrides in jvm scopes
for declarations which have kotlin builtins in supertypes with
special java mapping rules (collections, for example)
2022-01-19 15:24:43 +03:00
Dmitriy Novozhilov
17916d4a63
[FE] Return Name? instead of List<Name> from getBuiltinFunctionNamesByJvmName
...
This is much more correct, because we have one to one mapping for
special java functions in this case, so using single nullable name
instead of list of names makes code more readable
2022-01-19 15:24:43 +03:00
Dmitriy Novozhilov
09a7a1c09f
[FIR] Add ability to specify members in FirScopeDumpHandler
2022-01-19 15:24:43 +03:00
Dmitriy Novozhilov
d588b2e654
[FIR] Add toString to all type scopes
2022-01-19 15:24:43 +03:00
Dmitriy Novozhilov
e4978d8022
[FIR] Move collecting classifiers from type intersection scope to context
2022-01-19 15:24:42 +03:00
Dmitriy Novozhilov
95a95450bf
[FIR] Extract logic of creating intersection overrides into separate class
2022-01-19 15:24:42 +03:00
Pavel Kirpichenkov
b4c854429f
[MPP] Permit const actual properties for non-const expects
...
It's safe as not having const is more restrictive, therefore can be
allowed in common. Otherwise, it's not possible to declare an expect
declaration for a platform property with `const` modifier in common
KT-18856
2022-01-19 13:22:47 +03:00
Pavel Kirpichenkov
8ad06ef725
Minor: reformat
2022-01-19 13:22:47 +03:00
Pavel Kirpichenkov
a46e683c85
[MPP] Add tests for const vs non-const expect and actual properties
...
KT-18856
2022-01-19 13:22:46 +03:00
Denis.Zharkov
b2543b7a26
Fix false negative UPPER_BOUND_VIOLATED with typealiases in supertypes
...
^KT-50797 Fixed
^KT-50798 Open
2022-01-19 09:52:16 +03:00
Ilmir Usmanov
b794b0f1be
Check if there is bridge by signatures instead of IR
...
#KT-50649 Fixed
2022-01-18 16:57:00 +03:00
Alexander Korepanov
8fe4e9030f
[JS IR] Add an implicit cast to int for the mod operation
...
^KT-45620 Fixed
2022-01-18 12:01:37 +00:00
Dmitriy Novozhilov
5fc1e2e0cb
[FIR] Don't create DNN types for flexible simple types
...
^KT-50788
2022-01-18 13:41:31 +03:00
Sergej Jaskiewicz
ceb744b53b
Revert "[JS IR] [runtime] Remove valueOf method from Long"
...
This reverts commit e13b6b2a90 .
The significance of the breakage caused by the removal of `valueOf`
was underestimated.
#KT-50202 Open
2022-01-18 10:33:54 +00:00
Dmitriy Novozhilov
bc3157162d
[FE 1.0] Clarify some diagnostic messages
2022-01-18 12:47:55 +03:00
Dmitriy Novozhilov
534d84e3e5
[FE 1.0] Add links to committee YT tickets into diagnostic messages
...
^KT-39883 Fixed
^KT-44705 Fixed
^KT-44866 Fixed
^KT-47902 Fixed
^KT-49110 Fixed
2022-01-18 12:47:54 +03:00
Dmitriy Novozhilov
ca31d51a6e
[FE 1.0] Change since version of ProhibitAccessToEnumCompanionMembersInEnumConstructorCall feature to 1.8
...
^KT-49110
2022-01-18 12:47:53 +03:00
Dmitriy Novozhilov
a63f65fef1
[FE 1.0] Change since version of ProhibitNonExhaustiveIfInRhsOfElvis feature to 1.8
...
^KT-44705
2022-01-18 12:47:52 +03:00
Dmitriy Novozhilov
a99a7fd48d
[FE 1.0] Change since version of StopPropagatingDeprecationThroughOverrides feature to 1.8
...
^KT-47902
2022-01-18 12:47:51 +03:00
Alexander Udalov
f84f3cae97
Decrease operand count in tests on invokedynamic string concat
...
Otherwise the tests are flaky for some reason; stack overflow is thrown
from psi2ir sometimes. Probably it has something to do with the fact
that the JVM stack which is used by the compiler here is around the
default limit (which is 1M).
2022-01-17 23:59:59 +01:00
Victor Petukhov
72a78eb423
Replace errors with warnings for type checker recursion on delegates
...
^KT-49477 Fixed
2022-01-17 21:27:14 +03:00
Victor Petukhov
a4a2f71fca
Introduce deprecation cycle for reporting errors on some illegal equality calls inside a builder inference call
...
^KT-43493 Fixed
2022-01-17 19:44:16 +03:00
Victor Petukhov
060af85a93
Extract checks on equality expressions into a separate checker
...
^KT-43493 Fixed
2022-01-17 19:44:16 +03:00
Dmitriy Novozhilov
8daf7774ba
[FIR] Properly handle when subject expression in DFA of equality calls
...
^KT-50785 Fixed
2022-01-17 17:59:23 +03:00
Dmitriy Novozhilov
57346bac54
[FIR] Properly handle flexible types during creation of DNNT
...
^KT-50788 Fixed
2022-01-17 17:59:22 +03:00
Mikhail Glukhikh
1274e2b90a
Deprecate ExtensionFunctionType on a non-function types
...
Related to KT-43527
2022-01-14 22:20:44 +03:00
Mikhail Glukhikh
d0fa3eb1d3
Forbid ExtensionFunctionType on functional types without parameters
...
#KT-43527 Fixed
2022-01-14 22:20:24 +03:00
Mikhail Glukhikh
beb2957726
FIR: render <T> name for DELEGATE_USES_EXTENSION_PROPERTY_TYPE_PARAMETER
...
Related to KT-50183
2022-01-14 22:20:23 +03:00
Mikhail Glukhikh
a4f74f60d9
Fix apostrophes in error messages #KT-50183 Fixed
2022-01-14 22:20:23 +03:00
Mikhail Glukhikh
0f2f6334c2
Fix error message for SUPERTYPE_IS_SUSPEND_FUNCTION_TYPE
...
#KT-48907 Fixed
2022-01-14 22:20:22 +03:00
Mikhail Glukhikh
1402bb2d45
Fix error message about unsupported annotations on type parameters
...
#KT-48908 Fixed
2022-01-14 22:20:22 +03:00
Mikhail Glukhikh
230f210a2a
Fix error message for CONST_VAL_NOT_TOP_LEVEL_OR_OBJECT
...
#KT-50182 Fixed
2022-01-14 22:20:22 +03:00
Mikhail Glukhikh
37c0cad827
Minor code cleanup: resolveSupertypesByMembers
2022-01-14 22:20:21 +03:00
Mikhail Glukhikh
fdf336042b
Provide migration of Any functions via super in abstract case
...
Related to KT-38078
2022-01-14 22:20:21 +03:00
Mikhail Glukhikh
390fa682b9
Forbid calls of Any functions via super if they are overridden as abstract
...
#KT-38078 Fixed
2022-01-14 22:20:21 +03:00
Mikhail Glukhikh
b689bbf5c7
Forbid usages of super if in fact it accesses an abstract member
...
#KT-49017 Fixed
2022-01-14 22:20:21 +03:00
Elena Lepilkina
d15270b9e5
[K/N][BCE] Check indexedObject type to avoid classes without optimized get operators
2022-01-14 21:48:08 +03:00
Xin Wang
60657022e0
JVM_IR: Generate counter loop for reversed array (KT-22429)
2022-01-14 21:48:07 +03:00
Stanislav Erokhin
cd957ae774
Return some API and mark them as IDEAPluginsCompatibilityAPI
2022-01-14 16:13:27 +01:00
Evgeniy.Zhelenskiy
ec720ecfb5
[Ir, Fir2Ir] Remove unnecessary IsValue parameters of builder functions
2022-01-14 13:51:58 +00:00
Evgeniy.Zhelenskiy
e97ca2ada4
[Psi2Ir, Fir2Ir] Generate toString, hashCode, equals methods for MF VC
2022-01-14 13:51:57 +00:00
Evgeniy.Zhelenskiy
c7edc353d3
[FIX, Frontend] Fix recursive check for multi-field value classes
2022-01-14 13:51:57 +00:00
Evgeniy.Zhelenskiy
e69a973b07
[Frontend, Ir] Equality test passes
2022-01-14 13:51:57 +00:00
Evgeniy.Zhelenskiy
df1de3a7d3
[JVM] Forbid non-JvmInline value classes again
2022-01-14 13:51:56 +00:00
Evgeniy.Zhelenskiy
7595f798e1
[JVM] Introduce MF Value Classes to frontend
2022-01-14 13:51:55 +00:00
Dmitriy Novozhilov
bb6c6dc45d
[FE 1.0] Fix reporting of UNINITIALIZED_ENUM_ENTRY on qualified enums
...
^KT-41124
^KT-50758 Fixed
2022-01-14 14:26:54 +03:00
Dmitriy Novozhilov
50f6825775
[FE 1.0] Cleanup code of ControlFlowProcessor
...
- Always pass not nullable language version settings
- Fix warnings and style
- Remove redundant pseudocode utils
2022-01-14 14:26:53 +03:00
Dmitriy Novozhilov
9f870b0549
[FIR] Report errors on cycles in annotation parameter types
...
^KT-47932
2022-01-14 14:26:53 +03:00
Dmitriy Novozhilov
e9ac24dc33
[FE 1.0] Report errors on cycles in annotation parameter types
...
^KT-47932
^KT-50753 Fixed
2022-01-14 14:26:52 +03:00
Dmitriy Novozhilov
139a800ff7
[FE 1.0] Prohibit array literals inside nested objects of annotation classes
...
^KT-39041
^KT-50749 Fixed
2022-01-14 14:26:51 +03:00