Commit Graph

729 Commits

Author SHA1 Message Date
Ilmir Usmanov 6e30ce2763 FE: Make synchronized suspend functions and lambdas error in 1.8
#KT-27333 Fixed
2022-04-11 12:02:30 +00:00
Ilmir Usmanov f473998e8b FIR: Make 'suspend fun', where 'suspend' is not builtin error in 1.8
#KT-49264
2022-04-11 12:02:29 +00:00
Ilmir Usmanov f75a8109d2 FE 1.0: Make 'suspend fun', where 'suspend' is not builtin error in 1.8
#KT-49264 Fixed
2022-04-11 12:02:28 +00:00
Dmitriy Novozhilov 38696a41bc [Test] Add ability to override some services in AbstractKotlinCompilerTest 2022-04-08 09:42:02 +00:00
Dmitriy Novozhilov 2c6aea47b1 [Test] Introduce provider of path of standard libraries jars
Before this change all paths to all libraries were hardcoded to
  `dist/kotlinc/lib/...`, which is not suitable for usages of test
  framework outside of Kotlin project
2022-04-08 09:42:02 +00:00
Dmitriy Novozhilov afad6a564a [Test] Pass CompilerConfiguration to AbstractEnvironmentConfigurator.registerCompilerExtensions
This is needed to provide ability to configure extensions depending on
  configuration of specific test
2022-04-08 09:42:00 +00:00
Dmitriy Novozhilov 400ad6a01e [Test] Add ability to configure access to application disposable in test configuration
This is needed to unbound CompilerConfigurationProvider from ApplicationEnvironmentDisposer,
  which depends on classes from JUnit 5. This will allow to safely use
  compiler test framework with base test framework different from JUnit 5
2022-04-08 09:41:59 +00:00
Dmitriy Novozhilov 6e2402620f [FIR] Fix collecting member candidates on receiver with smartcast
^KT-51460 Fixed
^KT-51827
2022-04-07 12:18:48 +00:00
Denis.Zharkov ef84dddc88 FIR: Add preliminary support for context receivers in resolution 2022-04-06 16:05:32 +00:00
Denis.Zharkov 54c3e7e7c5 FIR: Support context receiver in FIR building 2022-04-06 16:05:24 +00:00
Ivan Kochurkin c7122c1492 [FIR] Fix break/continue in try-finally in loop, ^KT-51759 2022-04-05 15:50:47 +00:00
Ivan Kochurkin fc77d0d26b [FIR] Fix false positive errors for members with explicit API mode, ^KT-51758 Fixed 2022-04-05 15:50:45 +00:00
Ivan Kochurkin 48dbb9ceb9 [FIR] Fix resolving of refs with implicit this in lambdas in smartcasts 2022-04-05 15:50:43 +00:00
Ivan Kochurkin c6f52893fb [FIR] Fix inconsistent RETURN_TYPE_MISMATCH and TYPE_MISMATCH reporting on functions and properties
^KT-51203 Fixed
2022-04-05 15:50:43 +00:00
Ivan Kochurkin 4617615fd9 [FIR] Fix false-positive INAPPLICABLE_LATEINIT_MODIFIER for property with unresolved type
^KT-51624 Fixed
2022-04-05 15:50:42 +00:00
Dmitry Timofeev 4e784eeb33 Create INTERSECTION_TYPE stubs for definitely non-nullable types
^KTIJ-20802 Fixed
2022-04-05 10:48:12 +00:00
Mikhail Glukhikh 0ef32e5807 Don't create substituted copy of invoke descriptor with unchanged names
#KT-34919 Fixed
2022-04-04 13:08:28 +00:00
Mikhail Glukhikh 899dc401c8 Add test for KT-51499 (occurs in FE10, already fixed in FIR) 2022-04-04 12:51:33 +00:00
Mikhail Glukhikh aaebb7a30e FIR: don't create delegated constructor call in expect
#KT-51756 Fixed
2022-04-01 16:15:53 +03:00
Ilya Chernikov 03cbfea737 FIR LT: Introduce source file abstraction, carry it from parsing to IR
along with source lines mapping, allows to "emulate" usage of the
PSI files which allows to extract source file and line mapping info
on every stage from source element.
It makes sense to use this mapping for the error reporting too.
2022-03-30 08:34:30 +00:00
Ilya Chernikov 9e32188938 FIR LT: add syntax error reporting to LT2Fir
use it in the new pipeline
2022-03-30 08:31:56 +00:00
Dmitriy Novozhilov 078acb1bfe [FE] Fix positioning strategy for SAFE_CALL_WILL_CHANGE_NULLABILITY warning
^KT-46860
2022-03-28 12:37:25 +00:00
Dmitriy Novozhilov 565c61a702 [FE 1.0] Fix false-negative INVALID_IF_AS_EXPRESSION_WARNING and NO_ELSE_IN_WHEN_WARNING
^KT-51711 Fixed
2022-03-28 12:37:24 +00:00
Victor Petukhov 7e491edf95 Allow empty type info for excl expressions
^KT-34515 Fixed
2022-03-24 11:46:00 +00:00
Victor Petukhov 22b2554368 [FE 1.0] Support suspend only SAM conversions
^KT-50477 Fixed
2022-03-24 09:28:28 +00:00
Victor Petukhov 2307122089 [FE 1.0] Report errors for recursive types from completion as well
Such diagnostics could be missed at least for plus assignment's right side because it wasn't report for the second time of analysis

^KT-48546 Fixed
2022-03-23 21:13:34 +00:00
Victor Petukhov 27fa632630 [FE 1.0] Update test data with new error type representation 2022-03-23 21:13:33 +00:00
Victor Petukhov b5933c70e2 [FE 1.0] Refactor error utils: split error entities and introduce error type and error scope kinds 2022-03-23 21:13:33 +00:00
Jinseong Jeon 881a6bed35 AA: add tests about resolution to Java static method 2022-03-22 15:44:50 +01:00
Jinseong Jeon 13b9fed488 AA FE1.0: make invoke reference handle implicit invoke only 2022-03-22 15:44:49 +01:00
Jinseong Jeon 06d1acaadd AA: one more kind for Java synthetic property origin 2022-03-22 15:44:47 +01:00
Jinseong Jeon cbef3faae7 AA: expose library modules in the project structure 2022-03-22 15:44:46 +01:00
Jinseong Jeon dcc349da0d AA: split PSI lookup utils from deserialized declaration provider 2022-03-22 15:44:46 +01:00
Jinseong Jeon 4d938e93c6 FIR LC: remove IDE prefix from FIR version of KotlinAsJavaSupport
since it's used in standalone mode as well
2022-03-22 15:44:45 +01:00
Roman Golyshev 22830cf159 [FIR IDE] Fix resolving sugared compound operators (like +=, -=)
^KTIJ-21374 Fixed
2022-03-22 13:14:54 +00:00
Mikhail Glukhikh 70366c3bcb FIR: forbid java.lang.String deprecated constructors #KT-51364 Fixed 2022-03-21 13:58:13 +00:00
Roman Golyshev 644db43e67 [FIR IDE] Filter non-implicit smart-casts in KtSmartCastProviderMixIn
Also, make `getSmartCastInfo` work more like SMART_CAST slice for
binding context

^KTIJ-21013 Fixed
2022-03-18 01:01:46 +04:00
Yan Zhulanow dd2afb558e Port stub-relating changes from 'master' of IntelliJ 2022-03-17 17:44:55 +09:00
Roman Golyshev 7bcd67068c [FIR IDE] Resolve explicit invoke calls more correctly
Also, enable some muted tests

^KTIJ-21343 Fixed
2022-03-15 21:29:36 +03:00
Ilya Kirillov 8b8d81cf2f [symbol lc] fix compilation of SymbolLightClassesForLibraryFrontendApiTestConfiguratorService 2022-03-15 19:50:19 +03:00
Jinseong Jeon a106ec6530 Do not create FastJarFileSystem when USE_PSI_CLASS_FILES_READING
because the intention of that configuration is to use "slower" class
reading.

In the near future, even though FIR is enabled, which uses experimental
faster jar file system, FIR clients (e.g., FIR UAST or Android Lint) may
still need to use slower class reading. So, we need to handle that
configuration before checking others.
2022-03-15 19:50:18 +03:00
Jinseong Jeon 24ec1e0cab AA: include root when populating files for scope of KtLibraryModule 2022-03-15 19:50:18 +03:00
Jinseong Jeon 6ec6def8e3 AA: reuse CoreJarFileSystem from KotlinCoreEnvironment in tests 2022-03-15 19:50:17 +03:00
Jinseong Jeon 89725941df AA: showcase an error in resolution to stdlib in standalone mode 2022-03-15 19:50:16 +03:00
Mikhail Glukhikh 3251c474a2 FIR: add test for KT-51621 (qualifiers conflict case) 2022-03-15 13:21:02 +00:00
Mikhail Glukhikh 0a7da903f4 FE1.0/FIR: add test for "double import" situation 2022-03-15 13:21:00 +00:00
Mikhail Glukhikh 6b53ac8367 FIR: forbid top-level destructuring declarations #KT-50468 Fixed 2022-03-15 13:08:18 +00:00
Mikhail Glukhikh 6ecc97575d FIR: make deeper recursive type alias expansion check (see KT-37000) 2022-03-15 13:08:18 +00:00
Yan Zhulanow c334a44e02 Preserve synthetic enum methods in stub-based 'ClsClassImpl'
'ClsClassImpl' instances created by the platform contain synthetic
enum methods (added by 'ClassInnerStuffCache.calcMethods()'). Such
convention is common in IntelliJ (see KT-36095 and
'9a8b345adaded83fe13980a28db5d9f9acc7450d' in the IntelliJ repository).

This commit makes Kotlin's stub-based classes consistent with the
convention. Instead, a filter is added in place of 'ClsClassImpl' usage.

See also the following commits:
- 7c86911f44
- 43468c6d55
2022-03-14 17:53:55 +09:00
Yan Zhulanow fa4dadf9b7 Update KotlinClassInnerStuffCache implementation
'KotlinClassInnerStuffCache' was copy-pasted from the platform's
'ClassInnerStuffCache' several years ago. After J2K and other changes,
it became quite dirty.

Besides cleaning things up, enum synthetic method handling have
significantly improved. Before, such methods were handled only in
'processDeclarationsInEnum', and 'getMethods()' didn't return them.
This led to inconsistent behavior and was reason for providing special
ad-hoc support in '1b6ded600518176b21cc308ed3e032ef8d04cc90'.
2022-03-14 17:53:55 +09:00