Commit Graph

195 Commits

Author SHA1 Message Date
Denis Zharkov a978c6be35 Fix precise Java IC for multi-module projects
The problem may happen in case of multi-module projects:
If a Java class was effectively unused in one module (A),
but it's used in kt-files from the dependent module (B) then
we wouldn't track the changes of the class while compiling A
and don't recompile its usages in B.

It happens because now we track only Java classes that were
resolved by out frontend instead of all classes in the module
that would be more correct but it might be rather slow.

The idea is that whenever we see change in an untracked Java file
we start tracking the classes in it and for the first time we mark
all its content as changed.
2017-12-12 16:17:58 +03:00
Denis Zharkov f33255c990 Add jetbrains annotations to javac classpath in IncrementalJvmCompilerRunnerTest
Before this change some of these tests were failing
2017-12-12 16:17:58 +03:00
Denis Zharkov df533053f9 Record special name lookup when trying use interface as a SAM
It was already working in JPS, because it see our synthetic classes
as subclasses for SAM's, but with non-JPS build we have to manually
tracking places that should be recompiled after SAM members are changed
2017-12-12 16:17:58 +03:00
Denis Zharkov ae6421476d Refine dirty files computation in case of Java source changes
#KT-17621 In Progress
2017-12-12 16:17:58 +03:00
Denis Zharkov 26393d738f Drop IncrementalCompilerRunner::markDirty and its override 2017-12-12 16:17:58 +03:00
Denis Zharkov 84282035b0 Set up projectTest.workingDir for incremental-compilation-impl 2017-12-04 15:21:03 +03:00
Alexey Tsvetkov 18261838b6 Avoid deserializing .kotlin_module as class proto
#KT-20184 fixed
2017-11-16 14:47:59 +03:00
Nikolay Krasko 643f771c24 Report rebuild reason in rebuild function 2017-11-15 16:12:38 +03:00
Alexander Udalov 02981038f3 Split core into descriptors, descriptors.jvm, deserialization, descriptors.runtime 2017-11-10 18:58:31 +01:00
Alexander Udalov 33549362cb Move compiler/tests-common/{src -> tests}, adjust dependencies 2017-10-31 07:36:45 +01:00
Alexander Udalov c2276e2ccb Rename module ':compiler.tests-common' -> ':compiler:tests-common' 2017-10-31 07:36:45 +01:00
Alexey Tsvetkov e83f1b138b Perform non-IC build when JS lib is changed 2017-10-24 16:28:57 +03:00
Alexey Sedunov 87f3d24f9b Misc: Protect freeArgs with FreezableVar 2017-10-24 15:43:51 +03:00
Yan Zhulanow fed5bddde2 Android Extensions: Initial IC support (KT-14125) 2017-10-16 21:25:42 +03:00
Alexey Tsvetkov 62f293280c Gradle: compile tests incrementally when main is changed
#KT-17674 fixed
2017-09-29 05:11:20 +03:00
Ilya Chernikov 0676ebd530 Fix after rebase on master 2017-09-19 23:58:38 +02:00
Ilya Chernikov d039d191f2 Fix tests in the new build infrastructure 2017-09-19 23:58:30 +02:00
Alexander Podkhalyuzin 3f8170d369 Clean idea files generated on the gradle import, add them to .gitignore 2017-09-19 23:58:27 +02:00
Ilya Chernikov 27968c8e13 Set proper jvmTarget for projects 2017-09-19 21:37:27 +02:00
Ilya Chernikov deda50dbbb Continue switching projects to improved dsl: sourceSets and test running 2017-09-19 21:37:26 +02:00
Ilya Chernikov 336e24b837 Fix project structure after rebase on master 2017-09-19 21:37:25 +02:00
Ilya Chernikov b6c255cea5 Refactor: project renaming, using improved build dsl 2017-09-19 21:37:22 +02:00
Ilya Chernikov 61dfb75e0e Implement Gradle Kotlin DSL build 2017-09-19 21:37:06 +02:00
Dmitry Jemerov cc8fbf6078 Store third-party annotations in a separate directory 2017-09-13 17:25:20 +02:00
Alexey Tsvetkov cb1ffdccd7 Add test where unused file is removed 2017-08-29 04:28:10 +03:00
Alexey Tsvetkov 66a77c7ec2 Fix Gradle IC cache version checking 2017-08-29 04:28:09 +03:00
Alexey Tsvetkov cf72b14b34 Fix typo in test name 2017-08-29 04:28:08 +03:00
Alexey Tsvetkov 141c889a84 Make test case more useful 2017-08-29 04:28:08 +03:00
Alexey Tsvetkov 5f9bad5905 Add JS specific build logs to inline properties IC tests
Unlike the JVM target platform, the JS back-end does
not track getters' and setters' usages separately,
so when either accessor of some property is changed,
all usages of that property will be rebuilt.
2017-08-29 04:28:07 +03:00
Alexey Tsvetkov 73b63bb343 Refactor inline properties tests 2017-08-29 04:28:07 +03:00
Alexey Tsvetkov 44e8ae3571 JS IC: detect inline function changes 2017-08-29 04:28:07 +03:00
Alexey Tsvetkov b73d5cbe1f Mock constant search in JPS tests 2017-08-29 04:28:06 +03:00
Alexey Tsvetkov 2312013c41 Move JVM specific IC tests to separate dir 2017-08-29 04:28:06 +03:00
Alexey Tsvetkov 66cb45c202 Minor: replace forEach with filterTo 2017-08-29 04:28:05 +03:00
Alexey Tsvetkov dbe3baf740 Minor: mark calculateSourcesToCompile abstract 2017-08-29 04:28:04 +03:00
Alexey Tsvetkov 919daefb0e Rename IncrementalCacheImpl->IncrementalJvmCache 2017-08-29 04:28:04 +03:00
Alexey Tsvetkov 093bbc069a Fix typo destonationDir->destinationDir 2017-08-29 04:28:04 +03:00
Alexey Tsvetkov 1c4ada2008 Fix searching serialized classes package contains multiple fragments 2017-08-29 04:28:03 +03:00
Alexey Tsvetkov 7ecf5abdc7 Add class hierarchy tests to JS and JVM IC tests 2017-08-29 02:24:38 +03:00
Alexey Tsvetkov 0a5fe3ef7c Move JVM specific IC tests with class hierarchy changes 2017-08-29 02:24:38 +03:00
Alexey Tsvetkov 166883d847 Move JVM specific IC test data to separate dir 2017-08-29 02:24:37 +03:00
Alexey Tsvetkov 7810da7018 Add IC compiler tests with Java 2017-08-29 02:24:37 +03:00
Alexey Tsvetkov 71e8f16906 Generate IC compiler tests instead of using parametrized runner
# Conflicts:
#	compiler/incremental-compilation-impl/incremental-compilation-impl.iml
2017-08-29 02:24:37 +03:00
Alexey Tsvetkov 52b638ddb3 Throw exception if initial build has failed in IC tests 2017-08-29 02:24:37 +03:00
Alexey Tsvetkov c7775b8d11 Write build info only on successful build 2017-08-29 02:24:37 +03:00
Alexey Tsvetkov bb1cba67b7 Implement JS IC 2017-08-29 02:24:37 +03:00
Alexey Tsvetkov 356536d32b Update inputs cache on rebuild 2017-08-29 02:24:37 +03:00
Alexey Tsvetkov 20b14d4121 Extract IncrementalJvmCompilerRunnerTest 2017-08-29 02:24:37 +03:00
Alexey Tsvetkov 6fedf07f56 Introduce ChangesCollector 2017-08-29 02:24:37 +03:00
Alexey Tsvetkov d4d684a7f0 Introduce IncrementalCompilerRunner#makeServices 2017-08-29 02:24:37 +03:00