Denis Zharkov
71a9ba4790
Minor. Move helpers for javaslang to a separate package
2018-08-08 15:17:25 +07:00
Denis Zharkov
3a8335d47f
Optimize memory footprint for SlicedMapImpl in case it's empty
...
It might be useful in case of many delegating traces that
remain effectively empty themselves (up to 7M of empty maps in case of compilation of 'idea' module)
2018-08-08 15:17:25 +07:00
Denis Zharkov
8050869e45
Use THashSet for sets that are assumed to be big
...
Otherwise, a lot of memory is wasted on nodes instances
(cherry picked from commit 4922f87)
2018-08-08 15:17:25 +07:00
Mikhail Glukhikh
1d2438e04e
Report SUPERTYPE_NOT_INITIALIZED even if no constructors in superclass
...
Before this commit, expect super-class without constructors did not
provoke SUPERTYPE_NOT_INITIALIZED. However, it should, but only
if sub-type is normal class (not an expect one).
So #KT-24597 Fixed
2018-08-06 19:02:24 +03:00
Mikhail Zarechenskiy
659289b41a
Report diagnostics about experimentality on unsigned literals
...
#KT-25580 Fixed
2018-08-06 17:45:22 +03:00
Ilya Chernikov
f2395bac2f
Use script compiler options to calculate target platform in IDE
...
#KT-25822 fixed
2018-08-06 10:41:41 +02:00
Mikhail Zarechenskiy
ddf6c37e0e
Prohibit inline classes with special underlying types
...
#KT-25328 Fixed
#KT-23819 Fixed
2018-08-06 10:56:05 +03:00
Mikhail Zarechenskiy
6244846107
Add functions from Any to the member scopes of inline classes
2018-08-06 10:19:43 +03:00
Mikhail Zarechenskiy
fdf538007c
Refactoring: extract logic about methods from Any for scopes out
2018-08-06 10:19:39 +03:00
Alexander Udalov
fe2251bfca
Run classifier usage checkers on function types
2018-08-03 18:03:52 +02:00
Natalia Selezneva
f71269009a
Refactoring: use KtScript.scriptDefinition instead of KotlinScriptDefinitionProvider.findScriptDefinition if possible
2018-08-03 15:25:35 +03:00
Ilya Gorbunov
2a598e0ac4
Replace ReadOnly/Mutable usages in the compiler
...
Replace ones from org.jetbrains.kotlin package with new annotations from kotlin.annotations.jvm.
No need to copy them to compile kotlin-reflect anymore.
Then simplify reflect project more: no sources — no need to pack its direct output.
2018-08-03 09:37:38 +03:00
Alexander Udalov
0355746304
Implement OpenAddressLinearProbingHashTable.entries for debug when needed
...
Otherwise it's very difficult to view the contents of BindingContext in
debugger views
2018-08-02 18:36:22 +02:00
Ilmir Usmanov
0c867b4804
Disable callable references to suspend functions in 1.2
...
#KT-25604: Fixed
2018-08-02 18:55:49 +03:00
Alexander Udalov
9babd90999
Support default arguments and varargs for callable references
...
#KT-8834
#KT-19869
#KT-25514
2018-08-01 16:26:06 +02:00
Mikhail Zarechenskiy
acd5b62148
Introduce limited constant conversions for Kotlin/Native
...
#KT-25320 Fixed
2018-07-29 04:32:32 +03:00
Dmitry Savvinov
724b7bf363
Minor: rename and refactor contract-related PSI checks in ktPsiUtil
2018-07-27 16:59:23 +03:00
Dmitry Savvinov
b943140f3a
Move purely PSI checks of contract presence to ktPsiUtil.kt
2018-07-27 16:59:23 +03:00
Natalia Selezneva
0750de73e1
Distinguish exceptions about unknown module info
2018-07-25 15:30:49 +03:00
Dmitry Petrov
df6d4f358a
KT-22274 report warning on labels that can't be referenced
...
Labels are meaningful only if they can be referenced by 'break',
'continue', or 'return' expressions.
2018-07-25 12:08:20 +03:00
Dmitry Petrov
6fb913a463
KT-22274 report error/warning on incorrect return target label
2018-07-25 12:08:20 +03:00
Denis Zharkov
ac6874c221
Hide deprecated overload LanguageSettingsProvider::getLanguageVersionSettings
...
It's necessary only for binary compatibility
After recompilation it's expected to be resolved to an overload
with default parameter
2018-07-24 14:09:54 +03:00
Ilmir Usmanov
fa9653c3d2
Deserialize experimental coroutines as suspend functions/types
...
but deprecate them for now.
Promote stub version.
#KT-25623: Fixed
2018-07-23 21:52:17 +03:00
Dmitry Petrov
d61a3c158e
Fix ProjectImpl leak in PatternMatchingTypingVisitor
2018-07-23 16:05:47 +03:00
Denis Zharkov
56a87ec98e
Restore method broken in f72aa78eec
...
Otherwise plugin compatibility tests are failing
2018-07-23 10:36:31 +03:00
Mikhail Zarechenskiy
f8d19718c8
Fix exception on trying to evaluate red code with inline classes
...
#KT-25600 Fixed
2018-07-20 13:58:35 +03:00
Mikhail Zarechenskiy
17243c08c1
Forbid lateinit variables of inline class types
...
Proper support of lateinit inline class values will be added later,
see #KT-23814
#KT-25603 Fixed
2018-07-20 13:58:33 +03:00
Denis Zharkov
4e7718bfff
Minor. Extract many properties to ImportResolutionComponents
2018-07-20 11:27:08 +03:00
Denis Zharkov
0b2fde3886
State on types level that forcing imports works only for non-default
2018-07-20 11:27:08 +03:00
Denis Zharkov
79e776e9d7
Drop KtImportsFactory as it became unused after previous commit
2018-07-20 11:27:08 +03:00
Denis Zharkov
ec23695f77
Avoid creating fake PSI for default imports
...
#KT-13860 Fixed
2018-07-20 11:27:08 +03:00
Denis Zharkov
f72aa78eec
Fix libraries analysis for case of isReleaseCoroutines feature enabled
...
#KT-25466 In Progress
2018-07-19 16:19:04 +03:00
Dmitry Savvinov
76c651421b
Deprecate visibility of static members inherited from Java
...
Now they are not visible by short name through companion objects, just
like classifiers in KT-21515
^KT-25333 In progress
2018-07-19 13:32:38 +03:00
Alexander Udalov
871b896a21
Add internal compiler argument to change metadata version
...
Will be used in tests to check how we behave on binaries produced by a
"future" compiler
2018-07-18 17:59:37 +02:00
Dmitry Petrov
5767f84c0e
Restrict retention for annotations with target EXPRESSION
...
#KT-13762 Fixed
2018-07-18 14:21:03 +03:00
Alexander Udalov
bca3e1b95b
Restore getDefaultImports for compatibility with an external plugin
...
(see ce34deb9af )
2018-07-17 12:48:43 +02:00
Mikhail Zarechenskiy
b6db8971e4
Warn about annotations that targets non-existing accessors
...
#KT-15453 In Progress
2018-07-17 00:22:53 +03:00
Alexander Udalov
ce34deb9af
Delete DefaultImportProvider, refactor TargetPlatform.defaultImports
2018-07-16 13:45:11 +02:00
Alexander Udalov
1f0fb4823f
Simplify DefaultImportProvider, introduce "low priority imports"
...
Previously, packages `java.lang` and `kotlin.jvm` were imported on JVM
by default on the same rights, causing problems when the same classifier
existed both in `java.lang` and `kotlin.jvm`. Since the only known case
of such conflict were type aliases to JVM classes, the corresponding
classes (expansions of those type aliases) were manually excluded from
default imports. This made the code in DefaultImportProvider complicated
and resulted in multiple problems, regarding both correctness and
performance (see 82364ad3e5 , a9f2f5c7d0 , dd3dbda719 ).
This change adds a new concept, a "low priority import", and treats
`java.lang` as such. Since these imports are now separated from the rest
of default imports in LazyImportScope via secondaryClassImportResolver,
conflicts between classifiers are handled naturally: the one from
`kotlin.jvm` always wins (unless the one from `java.lang` is imported
explicitly, of course). This approach is simpler, safer and does not
require any memory to cache anything.
Skip ResolveToJava.kt test for javac-based resolve; it now fails because
of a weird issue which I didn't have time to investigate (this is OK
because it's a corner case of an experimental functionality)
2018-07-16 13:45:11 +02:00
Alexander Udalov
dcbb8045bd
Disallow function types with big arity on JVM if LV < 1.3 or API < 1.3
...
The implementation is a bit obscure because this worked on JS since
Kotlin 1.0 and we should not break that; however, on JVM, a diagnostic
will be reported with old language/API version
#KT-25241 Fixed
2018-07-16 10:41:27 +02:00
Ilmir Usmanov
6ba2baa9da
Deserialize constructors and properties with version requirement 1.3
...
if they have suspend function type in their descriptors.
Also, review fixes.
#KT-25256: Fixed
2018-07-11 14:20:46 +03:00
Ilmir Usmanov
c460593b7d
Forbid coroutines in language version is 1.3 and api version is less
2018-07-11 14:20:45 +03:00
Ilmir Usmanov
cbb81a343c
Minor. Move experimental warning disabling to appropriate places.
2018-07-11 14:20:44 +03:00
Ilmir Usmanov
524cc3ffe4
Forbid old coroutineContext deserialization. Fix suspend function deserialization
2018-07-11 14:20:43 +03:00
Mikhail Zarechenskiy
2be08f4d60
[NI] Fix exception, recorded type for function statement can be null
...
See `checkStatementType`, we return `null` to reduce count of errors.
Also, note that named function which is used as last statement in lambda
doesn't coerce to Unit, this is a separate bug and will be addressed later,
see #KT-25383
#EA-121026 Fixed
2018-07-10 17:41:17 +03:00
Alexander Udalov
2cb4b7c6d4
Extract MetadataPartProvider out of PackagePartProvider
2018-07-10 15:16:49 +02:00
Alexander Udalov
e25bc2865f
Remove PackagePartProvider from ResolverForProjectImpl
...
To be able to move it to JVM-specific modules, and to provide a
replacement for common module analysis
2018-07-10 15:16:49 +02:00
Ilya Chernikov
9549736d35
Fixes after review
2018-07-10 08:43:52 +02:00
Ilya Chernikov
f39c6f3b7a
Drop half-backed support of "dynamic" annotations on scripts...
...
leaving it in the history so it could be restored and finished, if needed
2018-07-10 08:43:51 +02:00
Ilya Chernikov
0f46f62232
Add script class annotations generation from the base class
2018-07-10 08:43:51 +02:00