Commit Graph

94970 Commits

Author SHA1 Message Date
Vladimir Dolzhenko fc8cb40a0d Make KtFileElementType#INSTANCE final
#KT-53781
2022-09-19 20:34:35 +00:00
Vladimir Dolzhenko 8804742220 Revert back and deprecate KtStubElementTypes#FILE
Due to usages in some external tooling

#KT-53781
2022-09-19 20:34:35 +00:00
Ilya Gorbunov e35ace5d3a Deprecate AbstractDoubleTimeSource
There are too few usages of it, and it can be mostly replaced with AbstractLongTimeSource.
2022-09-19 19:16:40 +00:00
Ilya Gorbunov 57c9d61291 ComparableTimeMark and specialized TimeSource KT-54082
- Introduce ComparableTimeMark interface extending TimeMark,
and TimeSource.WithComparableMarks - a time source that returns such time marks.
- Implement ComparableTimeMark in ValueTimeMark and AbstractLong/DoubleTimeMark classes.
2022-09-19 19:16:40 +00:00
Mikhail Glukhikh a4b2a8c4ea AbstractTypeChecker: fix special case with CapturedType as self type argument
#KT-53908 Fixed
May fix also KT-53271
2022-09-19 19:12:21 +00:00
Mikhail Glukhikh ed21011183 NewConstraintSystemImpl: remove redundant suppressions 2022-09-19 19:12:20 +00:00
Mikhail Glukhikh 6ab516a7e5 FE: add test for KT-53908 2022-09-19 19:12:20 +00:00
Artem Kobzar 73e7053c35 [K/JS] Use only single variant of default arguments function wrapper for exported and not-exported functions 2022-09-19 17:49:04 +00:00
Alexander Korepanov ea7ce55082 [JS IR] Add a test with an object in inline function for JS IC 2022-09-19 16:54:14 +00:00
Sebastian Sellmair 7a8250cf17 [Gradle] Add ReadMe.md to k.g.p-api module
^KT-54029 Verification Pending
2022-09-19 16:03:46 +00:00
Sebastian Sellmair bdfbac07d9 [Gradle] Add ReadMe.md to k.g.p-annotations module
^KT-54029 Verification Pending
2022-09-19 16:03:45 +00:00
Sebastian Sellmair 60c969fe06 [Gradle] Replace previous kgp Internal and Experimental annotations
^KT-54029 Verification Pending
2022-09-19 16:03:45 +00:00
Sebastian Sellmair c2b48e2790 [Gradle] Add k.g.p-api and k.g.p.-annotations modules to binary compatibility validation
^KT-54029 Verification Pending
2022-09-19 16:03:45 +00:00
Sebastian Sellmair 8189d7b254 [Gradle] Implement kotlin-gradle-plugin-annotations module
This will include Internal* and *Experimental annotations for the
Kotlin Gradle Plugin. The separate module is proposed, so that
additional modules can use those annotations without
a dependency to the full kotlin-gradle-plugin-api module
(see -idea modules)

^KT-54029 WIP
2022-09-19 16:03:44 +00:00
Artem Kobzar d9c5f100db [K/JS] Use intrinsics instead of new functions in IR backend. 2022-09-19 13:04:16 +00:00
Yahor Berdnikau e94c1ea0ed Update Kotlin repo for bootstrap update
^KT-27301 Fixed
2022-09-19 12:30:42 +02:00
Yahor Berdnikau e606018372 Fix deprecations in functional tests
^KT-27301 In Progress
2022-09-19 12:30:41 +02:00
Yahor Berdnikau 47dee4b88c Fix MPP tests
^KT-27301 In Progress
2022-09-19 12:30:41 +02:00
Yahor Berdnikau 62a3978e6e Drop unused test
^KT-27301 In Progress
2022-09-19 12:30:41 +02:00
Yahor Berdnikau c81f1259c3 Update KotlinNativeArtifact usages
^KT-27301 In Progress
2022-09-19 12:30:41 +02:00
Yahor Berdnikau f949bb1fa1 Update KotlinNativeLinkArtifactTask task to use compiler options
^KT-27301 In Progress
2022-09-19 12:30:41 +02:00
Yahor Berdnikau 8de0cbf28e Update KotlinNativeCompile task to use compiler options
^KT-27301 In Progress
2022-09-19 12:30:41 +02:00
Yahor Berdnikau 564ed0d181 KotlinNativeLink task now uses compiler options
Now KotlinNativeLink task does not extend AbstractKotlinNativeCompile
task as Link task is tool type task that should use
CompilerCommonToolOptions.

^KT-27301 In Progress
2022-09-19 12:30:41 +02:00
Yahor Berdnikau c7064a5edf Move KotlinNativeLink task into separate file
Allows easier to work with class when code completion is slow.

^KT-27301 In Progress
2022-09-19 12:30:41 +02:00
Yahor Berdnikau cf3855a396 KotlinNativeCompilerArgBuilder now uses compiler options
^KT-27301 In Progress
2022-09-19 12:30:41 +02:00
Yahor Berdnikau c8472fb837 Add workaround for external plugin modifying options on common task execution
Currently know problematic place is in 'common-configuration.gradle.kts'
 setting '-Xklib-relative-path-base'. This is done in task doFirst{}
 action to avoid remote build cache misses due to absolute path usage.

^KT-27301 In Progress
2022-09-19 12:30:41 +02:00
Yahor Berdnikau 5121db6e2c Update KotlinCompileCommon task to use compiler options
^KT-27301 In Progress
2022-09-19 12:30:40 +02:00
Yahor Berdnikau ad62262f51 Add workaround for external plugin modifying options on JS task execution
Currently know problematic place is in 'common-configuration.gradle.kts'
 setting '-Xklib-relative-path-base'. This is done in task doFirst{}
 action to avoid remote build cache misses due to absolute path usage.

^KT-27301 In Progress
2022-09-19 12:30:40 +02:00
Yahor Berdnikau 9de0fe48f3 Unify approach in Kotlin/JS tasks configuration.
Move tasks configuration into JS tasks configurators.
Introduce enhancedFreeCompilerArgs workaround when freeCompilerArgs
are modified based on existing values.
Introduce workaround for 'destinationDirectory' input when it
content are depenends on multiple other task inputs.

^KT-27301 In Progress
2022-09-19 12:30:40 +02:00
Yahor Berdnikau 4881e32e44 Update KotlinJsDce task to use compiler options
^KT-27301 In Progress
2022-09-19 12:30:40 +02:00
Yahor Berdnikau 6de55d5246 Update Kotlin2JsCompile task to use compiler options
^KT-27301 In Progress
2022-09-19 12:30:40 +02:00
Yahor Berdnikau 228fff555d Update Kotlin Java toolchain code to use compiler options
^KT-27301 In Progress
2022-09-19 12:30:40 +02:00
Yahor Berdnikau 732ba96667 Add workaround for external plugin modifying options on task execution
Currently, known plugins doing that are 'kotlin-dsl' and AGP with
compose enabled. They are setting freeCompilerArgs in KotlinCompile
.doFirst task action. At this point compilerOptions.freeCompilerArgs are
 finalized and Gradle doesn't allow further modification.

^KT-27301 In Progress
2022-09-19 12:30:40 +02:00
Yahor Berdnikau 6a6bcda298 Register BuildReportsService as task completion listener
This will trigger service instantiation on configuration cache reuse
even when all tasks are up-to-date.

^KT-27301 In Progress
2022-09-19 12:30:40 +02:00
Yahor Berdnikau b2f03f6224 Update KotlinCompile task to use compiler options
For Android extension temporary solution via KotlinJvmOptions is
provided.

^KT-27301 In Progress
2022-09-19 12:30:39 +02:00
Yahor Berdnikau 0c189de77f Update KotlinCompilation hierarchy to use compiler options
^KT-27301 In Progress
2022-09-19 12:30:39 +02:00
Yahor Berdnikau 9e55946754 Update implementations of KotlinCompilationData to use Compiler*Options
^KT-27301 In Progress
2022-09-19 12:30:39 +02:00
Yahor Berdnikau cb6ba1487b Update CompilationDetails to use Compiler*Options
^KT-27301 In Progress
2022-09-19 12:30:39 +02:00
Yahor Berdnikau 4977858fc8 Update DefaultLanguageSettings to use compiler options
^KT-27301 In Progress
2022-09-19 12:30:39 +02:00
Yahor Berdnikau a3ac5b91f6 Update Gradle plugin api to use compiler options
Binary compatible. Source incompatible via adding new methods to
interfaces.

^KT-27301 In Progress
2022-09-19 12:30:39 +02:00
Yahor Berdnikau 286d0d56af Introduce Kotlin compiler options with Gradle Properties API types
Old one is deprecated and delegates to new options. All new options
are marked with task input types, so they could be used as `@Nested`
input.

Generated options are using specific types in generated
compiler options. This should simplify code completion and provide
meaningful hints to user.

At this point repository compilation will fail.

^KT-27301 In Progress
2022-09-19 12:30:39 +02:00
Yahor Berdnikau 28dd3d4e71 Generate Gradle compiler types into separate project
This will allow to use them on the DSL generation.

^KT-27301 In Progress
2022-09-19 12:30:39 +02:00
Yahor Berdnikau 5eebcf8c77 Generate Js runtime diagnostic mode type
^KT-27301 In Progress
2022-09-19 12:30:39 +02:00
Yahor Berdnikau c1ed683ed8 Generate Js source map embed mode type
^KT-27301 In Progress
2022-09-19 12:30:38 +02:00
Yahor Berdnikau 626bd34319 Generate JS module kind type
^KT-27301 In Progress
2022-09-19 12:30:38 +02:00
Yahor Berdnikau 14f45b48b3 Generate JS main function execution mode type
^KT-27301 In Progress
2022-09-19 12:30:38 +02:00
Yahor Berdnikau 7772ab00cd Generate JvmTarget Gradle DSL object
This is generated based on JvmTarget compiler type without exposing
compiler internals.

^KT-27301 In Progress
2022-09-19 12:30:38 +02:00
Yahor Berdnikau 37c66837ee Make 'generateGradleOptions' task visible
Makes all generate* tasks easier to discover.

^KT-27301 In Progress
2022-09-19 12:30:38 +02:00
Yahor Berdnikau 6842842827 Generate KotlinVersion Gradle DSL object
To avoid exposing compiler internal types inside Gradle DSL public api.

ApiVersion and LanguageVersion in terms of compiler api is almost the
same. Actually ApiVersion is generated based on LanguageVersion. To
reduce user confusion what enum to use and what is the difference
- in Gradle DSL they are now exposed as single enum - KotlinVersion.

Mark KotlinVersion with DeprecationLevel.ERROR if related
LanguageVersion is unsupported and with DeprecationLevel.WARNING if
related LanguageVersion is deprecated.

^KT-27301 In Progress
2022-09-19 12:30:34 +02:00
Artem Kobzar a368fc37c7 [K/JS] Make interface subtyping faster and lighter. 2022-09-19 10:26:11 +00:00