Commit Graph

415 Commits

Author SHA1 Message Date
Dmitry Petrov 80bd916f5d 'SuspendFunction$n' should not be visible in member scopes (should be unresolved).
'SuspendFunction$n' class descriptors are created on demand by KotlinBuiltIns (and cached).
On serialization, types constructed with 'SuspendFunction$n' are written as 'Function$n' with extra flag (SUSPEND_TYPE).
On deserialization, corresponding 'SuspendFunction$n' classes are used.
2016-12-15 23:58:05 +03:00
Alexander Udalov 954db037dc Minor, fix warning by adding a TODO 2016-12-15 12:12:07 +03:00
Alexander Udalov feeed98323 Introduce SinceKotlinInfo, load from serialized metadata
This is a way for future compilers to cause previous compilers to report
diagnostics on usages of some declarations. Diagnostic can have a message
(and/or error code), level (error, warning, or completely hide the declaration
from the resolution), and Kotlin version, since which the diagnostic should no
longer be reported
2016-12-15 11:46:17 +03:00
Alexey Andreev 0238b182cc KT-12877: add JsNonModule with support on front-end 2016-12-03 17:15:07 +03:00
Alexey Andreev ac703dfda6 KT-12877: serialize information about file annotations. For each top-level declaration store containing file. Use this information to properly handle file-targeted JsModule. 2016-12-03 17:14:29 +03:00
Alexander Udalov 32792c5ce4 Store .kotlin_module files in MetadataSerializer
Compilation of top level functions/properties/typealiases results in a bunch of
different .kotlin_metadata files, so we need to store names of these files to
avoid scanning the file system in the compiler when loading code compiled by
K2MetadataCompiler.

For this, we reuse the PackageTable protobuf message, which is already used for
exactly the same purpose in the JVM back-end
2016-11-25 20:50:12 +03:00
Alexey Tsvetkov fc1af746c6 Gradle IC: treat companion object change as class signature change 2016-10-28 17:58:10 +03:00
Alexey Tsvetkov f01a956a8b Gradle IC: fix converting class to package facade 2016-10-28 17:58:10 +03:00
Alexey Tsvetkov 151cf7d073 Gradle IC: support multifile classes 2016-10-28 17:58:10 +03:00
Alexey Tsvetkov 7c16d086aa Groundwork for using IC without Gradle 2016-10-28 17:58:10 +03:00
Alexey Tsvetkov fafde1e948 Refactoring: introduce IncReporter to report IC progress 2016-10-28 17:58:10 +03:00
Alexander Udalov 53b584f48c Simplify usages of IncrementalPackageFragment and related code
Since its scope is now empty, no descriptor now has a container that is an
instance of IncrementalPackageFragment -> a lot of code is not needed anymore
2016-10-05 11:24:30 +03:00
Alexey Tsvetkov 6ebb50751c Remove source annotations when copy class with kapt2
Writing source annotations enables incremental compilation for kapt2.
However they are not needed in bytecode, so we remove them when
copying classes.

# Conflicts:
#	compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt
#	compiler/frontend.java/src/org/jetbrains/kotlin/config/JVMConfigurationKeys.java
2016-09-14 13:52:56 +03:00
Yan Zhulanow 975364b2ed Kapt: Provide SourceRetentionAnnotationHandler for incremental compilation.
Collect annotations with the "SOURCE" retention.
(cherry picked from commit 6ef66e7)
2016-09-10 17:36:15 +03:00
Alexey Tsvetkov 4e8deb9566 Implement multiproject IC in Gradle
#KT-13528 fixed
2016-09-05 14:52:17 +03:00
Alexander Udalov aaf618e035 Minor, inline HashSetUtil#symmetricDifference 2016-07-25 15:55:31 +03:00
Alexander Udalov 9bf91e95d0 Change default visibility for TypeAlias from 'internal' to 'public'
Since public type aliases will supposedly be more common than internal ones, it
makes sense to save on writing flags for the former rather than the latter
2016-07-05 18:18:45 +03:00
Denis Zharkov efe718602a Support type aliases in incremental compilation
#KT-12871 Fixed
2016-06-28 16:22:08 +03:00
Denis Zharkov d53c53a900 Support annotations on type aliases declarations 2016-06-28 10:33:29 +03:00
Denis Zharkov 15ce4f8856 Minor. Add comment about type aliases based types metadata format 2016-06-28 10:33:29 +03:00
Denis Zharkov d78177dc23 Refine metadata format for typealias based type 2016-06-28 10:33:29 +03:00
Alexander Udalov 601dc96a34 Minor, rename protobuf field according to style guide 2016-06-27 20:18:57 +03:00
Alexander Udalov 4c8e8b099a Update protobuf from 2.5.0 to 2.6.1 2016-06-27 20:14:00 +03:00
Alexey Andreev 848d7f92fa KT-3008 Implement AMD, CommonJS and UMD wrappers. Compile stdlib and builtins modules into separate JS files and wrap them in UMD. 2016-06-27 15:33:24 +03:00
Alexey Andreev 95b78e18df KT-3008 Change the way how modules are referenced in JS 2016-06-27 15:33:23 +03:00
Alexey Andreev 2909533522 KT-3008 Add module kind. Include module kind and module dependencies in metadata 2016-06-27 15:33:23 +03:00
Mikhael Bogdanov fc8058848f Added classVersion to KotlinJvmBinaryClass 2016-06-15 13:43:26 +03:00
Alexander Udalov 7e38b93d80 Use protobuf with renamed packages, pack to IDEA plugin
Update GenerateProtoBuf.kt to also regexp-replace com.google.protobuf with
org.jetbrains.kotlin.protobuf in generated Java sources

 #KT-12581 Fixed
2016-06-14 14:17:22 +03:00
Alexander Udalov 3477f6ee85 Minor, drop java_generic_services option from .proto files
There are no service definitions in our .proto files, so this option had no
effect
2016-06-09 15:54:49 +03:00
Alexey Tsvetkov 5161b6bfe0 Shade in kotlin-build-common-test 2016-06-07 14:42:42 +03:00
Dmitry Petrov aede318fd5 Protobuf diff: do not throw exception on TYPE_ALIAS_LIST 2016-06-03 16:07:21 +03:00
Dmitry Petrov 8c2e80f9eb KT-11588 Type aliases
Fix protoDifferenceUtils.
2016-06-01 14:32:44 +03:00
Alexander Udalov b9fb6c0d84 Remove dangerous readKotlinHeader() in inlineUtil.kt
It was creating a phantom FileBasedKotlinClass which was not based on any file
2016-05-23 20:00:50 +03:00
Dmitry Petrov 65293008fd KT-11588 Type aliases
Type alias descriptor serialization
Types with type aliases serialization
2016-05-20 14:17:24 +03:00
Alexey Tsvetkov fe6e69ff89 Update kapt annotations file incrementally 2016-05-11 20:41:48 +03:00
Alexander Udalov 2ab68d53fa J2K KotlinJvmBinaryClass & AnnotationAndConstantLoader: convert 2016-04-14 21:08:36 +03:00
Zalim Bashorov 51c6abdbed IC: take into account added and removed classes when calculate affected names 2016-04-11 19:26:18 +03:00
Nikolay Krasko 47c7181f2a Extract tests-common module without any actual tests
The main reasoning for the module is to avoid running any compiler tests while executing run configuration that searches tests across module dependencies.
2016-04-08 17:40:38 +03:00
Alexey Tsvetkov 61814eb23f Test: override build.log in gradle IC tests 2016-03-30 03:40:53 +03:00
Alexey Tsvetkov c1a61b17c7 Test: use one function to find test's build log for jps and gradle 2016-03-30 03:40:53 +03:00
Alexey Tsvetkov 4c782dbfcc Refactor: move allVersions() to jps-plugin since it is jps specific 2016-03-30 03:40:53 +03:00
Zalim Bashorov 9a9b863c9d IC: add tests with moving files
Additionally added the ability to use directories in IC tests.

 #KT-8002 Obsolete
2016-03-24 22:28:40 +03:00
Alexey Tsvetkov 6ab868ae33 Print file paths relative to project root in gradle incremental compilation logs
KT-8487
2016-03-03 16:45:20 +03:00
Alexey Tsvetkov ba386f031b Pass isPackage = false when processing class proto
KT-8487
2016-03-03 16:45:20 +03:00
Alexey Tsvetkov be44db7bd3 Rebuild and compare output class files in gradle incremental tests
KT-8487
2016-03-03 16:45:19 +03:00
Alexey Tsvetkov 9e3284ff2a Make some functions private in classFileComparison.kt
KT-8487
2016-03-03 16:45:19 +03:00
Alexey Tsvetkov 7a7562d685 Build incremental testing utils to kotlin-build-common-test.jar
KT-8487
2016-03-03 16:45:19 +03:00
Alexey Tsvetkov 239e217d19 Move DebugXProtoBuf classes to build-common
KT-8487
2016-03-03 16:45:19 +03:00
Alexey Tsvetkov 8df209b436 Move incremental test modification utils to build-common
KT-8487
2016-03-03 16:45:17 +03:00
Alexey Tsvetkov f93562299c Reuse code from build-common
KT-8487
2016-03-03 16:45:16 +03:00