Commit Graph

36176 Commits

Author SHA1 Message Date
Alexey Tsvetkov 4fdca24db4 Remove source annotations removing (not needed with KAPT3) 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov 190c038ad8 Minor: log compiler arguments 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov c7c2a93d1f Use daemon when compiling Kotlin to JS 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov 25816b2ccf Use ProcessLauncher from native platform for out-of-process compilation 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov 5082e8f236 Add a way to customize compiler file in build.gradle 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov 75133bdfb9 Implement fallback strategies 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov d636803d2f Run compiler via Kotlin daemon in Gradle plugin 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 1f21a0ec90 Add compiler daemon client and runner to maven build 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
Alexey Tsvetkov e3550c5ea2 Convert CompilerEnvironment to Kotlin: actual conversion 2016-12-19 22:46:12 +03:00
Alexey Tsvetkov f98dde4543 Convert CompilerEnvironment to Kotlin: rename file 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
Dmitry Jemerov 5f124e9781 Don't show "Kotlin not configured" notification for projects that have Kotlin common runtime in scope
#KT-15331 Fixed
2016-12-19 19:21:10 +01:00
Yan Zhulanow 568523b065 Kapt3: Set correct compiler options when the annotation processing classpath is empty (KT-15146). Disable annotation processing in Javac task a bit earlier 2016-12-19 21:18:17 +03:00
Yan Zhulanow f8edf51c1b Allopen, Noarg: Support transitive meta-annotations 2016-12-19 21:18:11 +03:00
Yan Zhulanow 82dbba838a Allopen, minor: Add test for anonymous object 2016-12-19 21:18:06 +03:00
Dmitry Jemerov bc22b67995 Index and locate .kotlin_metadata files in IDE 2016-12-19 17:40:13 +01:00
Ilya Gorbunov 2209631f1a Add SinceKotlin to new coerceIn method. 2016-12-19 18:36:52 +03:00
Ilya Gorbunov 10f8e70322 Rename ClosedComparableRange to ClosedFloatingPointRange 2016-12-19 18:36:52 +03:00
Ilya Gorbunov 919c77b950 Minor: run configuration for binary compatibility tests, clean build 2016-12-19 18:36:52 +03:00
Alexey Sedunov a84275b057 Minor: Rename "Default" platform to "Common" 2016-12-19 18:31:46 +03:00
Alexey Sedunov 332d1f6405 Multi-platform Projects: Enable multi-platform projects for platform modules which depend on common modules 2016-12-19 18:27:49 +03:00
Alexey Sedunov df33455b95 Kotlin Facet: Detect module platform using Gradle plugin id/stdlib
artifact id (Gradle import)
2016-12-19 18:27:48 +03:00
Alexey Sedunov eac0c9b2ed Kotlin Facet: Add "Use project settings" option 2016-12-19 18:27:47 +03:00
Alexey Sedunov 4ed030d7c5 Kotlin Facet: Do not serialize default values of facet configuration 2016-12-19 18:27:46 +03:00
Mikhail Glukhikh 8f57869fc5 Line marker tests for header <----> impl 2016-12-19 17:39:16 +03:00
Mikhail Glukhikh 84ebca06bc AbstractMultiHighlightingTest extracted (to provide both multi file / multi module tests) 2016-12-19 15:46:34 +03:00
Mikhail Glukhikh a846e41b46 Cleanup: KotlinLineMarkerProvider 2016-12-19 15:46:27 +03:00
Mikhail Glukhikh 39ca78f584 Multi-platform navigation fix: from class to type alias & vice versa 2016-12-19 14:56:02 +03:00
Mikhail Glukhikh b363d34fd7 MemberDescriptor ancestor extracted to ClassifierDescriptorWithTypeParameters 2016-12-19 14:55:56 +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
Alexey Tsvetkov 9fc3d0838e Fix references from test to main in Gradle JS plugin with default output file 2016-12-17 21:46:13 +03:00
Alexey Tsvetkov b14a0d543f Add references from test to main in multiplatform test project 2016-12-17 21:32:36 +03:00