Mikhael Bogdanov
c38b55612b
Support properties in @PublishedApi bridge quickfix
2016-12-20 09:42:13 +01:00
Mikhael Bogdanov
6ca1d47207
Published-api checker refactoring, support java package-protected visibility
2016-12-20 09:42:13 +01:00
Dmitry Petrov
0fa2c54ae8
Identity comparison for primitives is deprecated (warning).
...
Identity comparison for primitive vs non-primitive is a warning (due to implicit boxing).
2016-12-20 11:00:58 +03:00
Alexey Tsvetkov
434f33f9e9
Minor: remove default value of retryOnConnectionError parameter
2016-12-19 22:55:28 +03:00
Alexey Tsvetkov
254d051a1f
Minor: replace map().flatten()->flatMap()
2016-12-19 22:55:27 +03:00
Alexey Tsvetkov
c89e62c45a
Minor: rename enableIC->withIC
2016-12-19 22:55:27 +03:00
Alexey Tsvetkov
69d1ee7b11
Run kapt with daemon
2016-12-19 22:55:26 +03:00
Alexey Tsvetkov
de2736489b
Unify Gradle and Kotlin daemon cache version checking
2016-12-19 22:55:25 +03:00
Alexey Tsvetkov
d5e42e3271
Clear jar cache with daemon
2016-12-19 22:55:24 +03:00
Alexey Tsvetkov
69e8cf6a25
Compile multiplatform projects with daemon
2016-12-19 22:55:24 +03:00
Alexey Tsvetkov
8228d5828e
Fix multiproject Gradle IC with daemon
2016-12-19 22:55:22 +03:00
Alexey Tsvetkov
fb869277d9
Set property "idea.plugins.compatible.build" every time production environment is created
...
Gradle can wipe system properties between the build.
If this property is not set, "idea.properties is not found exception"
can be thrown when creating KotlinCoreEnvironment.
2016-12-19 22:55:22 +03:00
Alexey Tsvetkov
51a8f6ee4f
Implement server side IC
2016-12-19 22:55:21 +03:00
Alexey Tsvetkov
f411bb0b4b
Refactoring: extract withDaemon
2016-12-19 22:55:21 +03:00
Alexey Tsvetkov
9654607f42
Refactoring: pass MessageCollector, OutputItemsCollector in CompilerEnvironment
2016-12-19 22:55:20 +03:00
Alexey Tsvetkov
145608ec0f
Minor: remove redundant call
2016-12-19 22:55:20 +03:00
Alexey Tsvetkov
c1812d7d92
Move IC tests to compiler
...
Fixing IC after moving it from Gradle to the compiler in commit f40a3eff20
2016-12-19 22:55:19 +03:00
Alexey Tsvetkov
cbe680d876
Move file utils
...
Fixing IC after moving it from Gradle to the compiler in commit f40a3eff20
2016-12-19 22:55:17 +03:00
Alexey Tsvetkov
8bd8f5eacf
Make IC classes public
...
Fixing IC after moving it from Gradle to the compiler in commit f40a3eff20
2016-12-19 22:55:14 +03:00
Alexey Tsvetkov
a569f7e75a
Remove remaining gradle api references
...
Fixing IC after moving it from Gradle to the compiler in commit f40a3eff20
2016-12-19 22:55:06 +03:00
Alexey Tsvetkov
939020ec60
Replace org.jetbrains.kotlin.com.intellij with com.intellij
...
Fixing IC after moving it from Gradle to the compiler in commit f40a3eff20
2016-12-19 22:54:38 +03:00
Alexey Tsvetkov
f40a3eff20
Move IC from Gradle to compiler
...
Reasons for moving:
1. Integration with Kotlin daemon for Gradle.
Gradle bundles Kotlin compiler (kotlin-compiler-embeddable) since Gradle 3.2.
There is no plugin isolation in Gradle, so strange compilation errors/exceptions may happen.
We decided to fix this problem by compiling out-of-process using Kotlin daemon.
Reasons for moving IC to the compiler:
* Better isolation from Gradle process.
* Incremental compilation logic is not scattered across two process and multiple modules.
* Makes it possible to implement standalone CLI IC
2016-12-19 22:46:12 +03:00
Alexey Tsvetkov
4fdca24db4
Remove source annotations removing (not needed with KAPT3)
2016-12-19 22:46:12 +03:00
Alexey Tsvetkov
0be4299c8a
Refactoring: extract JPS specific code from compiler-runner
2016-12-19 22:46:12 +03:00
Alexey Tsvetkov
eac76915be
Minor: remove ImmutableMapBuilder reference from CompilerOutputParser
2016-12-19 22:46:12 +03:00
Alexey Tsvetkov
c8394cd0cc
Convert CompilerOutputParser: convert to kotlin
2016-12-19 22:46:12 +03:00
Alexey Tsvetkov
d587c3091c
Convert CompilerOutputParser: rename file
2016-12-19 22:46:12 +03:00
Alexey Tsvetkov
896d81143c
Introduce compiler-runner module
2016-12-19 22:46:12 +03:00
Stanislav Erokhin
04fddc7139
Discriminate header classes in member scope.
...
We made it because of non-stable name resolution when project is multi platform. For such projects in platform module we have two classifiers with the same name, but impl class or type alias should win!
2016-12-19 22:43:10 +03:00
Yan Zhulanow
f8edf51c1b
Allopen, Noarg: Support transitive meta-annotations
2016-12-19 21:18:11 +03:00
Dmitry Jemerov
bc22b67995
Index and locate .kotlin_metadata files in IDE
2016-12-19 17:40:13 +01:00
Ilya Gorbunov
10f8e70322
Rename ClosedComparableRange to ClosedFloatingPointRange
2016-12-19 18:36:52 +03:00
Alexey Sedunov
eac0c9b2ed
Kotlin Facet: Add "Use project settings" option
2016-12-19 18:27:47 +03:00
Mikhail Glukhikh
5947d49dee
Multi-platform fix: no more errors for top-level impl fun / val / var in IDE
2016-12-19 14:55:49 +03:00
Alexander Udalov
63cc5d872d
Minor, fix test data
2016-12-19 12:15:59 +03:00
Alexander Udalov
da6c3c3231
Support header/impl enum classes
...
- prohibit constructors for header enum classes
- prohibit bodies for header enum entries
- all entries from header enum must be present in impl enum
2016-12-19 11:54:40 +03:00
Alexander Udalov
56d4ff0cad
Support nested header/impl classes
2016-12-19 11:54:38 +03:00
Alexander Udalov
a57455ce62
Relax requirements on function modifiers in multiplatform projects
...
Allow to implement header functions with external/tailrec/inline/infix/operator
functions
2016-12-19 11:53:39 +03:00
Alexander Udalov
64867409b7
Do not report errors on 'impl' declarations with -Xno-check-impl
...
Allow 'impl' modifier on a declaration even if it's not an implementation of
any header declaration
2016-12-19 11:50:54 +03:00
Alexander Udalov
0634782e47
Allow open impl class for final header class
2016-12-19 11:50:49 +03:00
Alexander Udalov
546e47dc44
Allow fake overrides and delegates to be impl for header declarations
...
Also fix a bug with matching supertype lists of header/impl classes
2016-12-19 11:50:40 +03:00
Alexander Udalov
7deaf8cc41
Allow impl class to be data class, allow impl constructor properties
2016-12-19 11:50:30 +03:00
Alexander Udalov
3e97c9fff9
Rename platform->header, definition->impl in test data
2016-12-19 11:50:21 +03:00
Denis Zharkov
a1ac77d382
Support async iterator case with coroutines
...
Not all the `hasNext` operators return types is exactly Z,
suspend operators return boxed versions.
So the fix is just coercing result value after invoked function to Z
2016-12-19 11:07:33 +03:00
Denis Zharkov
1076397530
Minor. Simplify suspension point processing
...
Move type coercing logic from transformer to ExpressionCodegen.
For suspension points it's always guaranteed that values
returned from suspension points are always can be successfully casted
to appropriate type, because they cannot return SUSPENDED marker
(it gets processed via CoroutineTransformerMethodVisitor).
2016-12-19 11:07:32 +03:00
Denis Zharkov
5dbc04abbb
Refine returns codegen for suspend functions
...
This change should make the logic a bit more simple.
For all suspend functions/coroutines treat them in expression codegen
like they return boxed version of the original type.
Everything works fine then, except Unit type functions:
their bodies must be generated just like they're VOID and then load
Unit on stack manually.
2016-12-19 11:07:32 +03:00
Dmitry Petrov
33ed98a0d3
Update typing rules for class literal expressions.
...
C::class : KClass<C>
expr: T => expr::class : KClass<out T>
NB: this means Obj::class : KClass<out Obj> for object Obj.
2016-12-19 10:41:49 +03:00
Alexander Udalov
f57bbeed58
Disable runtime versions consistency checker temporarily
...
It should be enabled back as soon as Kotlin-Version attribute is written to
manifests of runtime jars in the Maven build
2016-12-17 20:57:05 +03:00
Denis Zharkov
5ec62108ee
Rename RestrictsSuspendExtensions -> RestrictsSuspension
2016-12-16 18:56:30 +03:00
Mikhael Bogdanov
547704c179
'SubpackagesImportingScope' class update due to new diagnostic
2016-12-16 13:17:29 +01:00