Commit Graph

51522 Commits

Author SHA1 Message Date
Dmitriy Novozhilov 090c2998d2 Add running additional receiver checkers in new inference
That commit fix next diagnostics:

* RECEIVER_NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS
* NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS (partially, see #KT-29367)
2019-01-24 10:53:58 +03:00
Dmitriy Novozhilov 7f48897e21 Add NON_VARARG_SPREAD and SPREAD_OF_NULLABLE diagnostics to new inference 2019-01-24 10:53:58 +03:00
Toshiaki Kameyama 622fd8d8cf Add intention to add/remove underscores in numeric literal
#KT-28953 Fixed
2019-01-24 09:52:21 +03:00
Toshiaki Kameyama 225a6ea288 Convert parameter to receiver: don't remove 'override' and 'vararg' when function has 'vararg' parameter
#KT-28851 Fixed
2019-01-24 09:49:53 +03:00
Toshiaki Kameyama de7adf55ff Non-canonical modifiers order: do not highlight annotation
#KT-29238 Fixed
2019-01-24 09:47:54 +03:00
Toshiaki Kameyama 0075e90042 Convert to lambda: report at INFORMATION level if anonymous object super type does not match function parameter type exactly
#KT-28081 Fixed
2019-01-24 09:42:16 +03:00
Toshiaki Kameyama 3649e61c2f Boolean literal arguments: do not report for varargs parameters
#KT-29469 Fixed
2019-01-24 09:40:21 +03:00
Alexey Tsvetkov 8672d2adc0 Remove call to await after kapt work is submitted
Await blocks parallel execution within a project.
Since there are no actions in the task after
`await()`, it is safe to delete the call.
2019-01-23 23:30:28 +03:00
Alexey Tsvetkov 5a6df10522 Measure time spent on backing up and restoring outputs 2019-01-23 23:30:28 +03:00
Alexey Tsvetkov beabbb95db Enable assertions for Kotlin daemon in Gradle tests 2019-01-23 23:30:28 +03:00
Alexey Tsvetkov 9176f9b254 Fix clearing IC caches on rebuild
Previously IC caches in Gradle were not cleared correctly on rebuild,
because only `clean` method was called, but `flush` and `close`
were not.
2019-01-23 23:30:28 +03:00
Alexey Tsvetkov 7dcdba7e1a Restore outputs when Kotlin task fails
#KT-12295 Fixed

Gradle forces non-incremetnal builds,
when a task failed, but its outputs were changed.
This is an issue for Kotlin incremental compilation,
because it also forces all dependent modules to be rebuilt.
This change fixes the issue by reading all output and
restoring it on a compile error/exception.
This change does not affect non-incremental builds.
2019-01-23 23:30:28 +03:00
Alexey Tsvetkov 467090bd9e Don't override task action in KaptGenerateStubsTask 2019-01-23 23:30:28 +03:00
Mikhail Glukhikh f782f26c4f ClassClsStubBuilder: do not report errors for nested stubs
We log differently case with obfuscated library (KT-29427)
and regular case (KT-9618 and others)

#KT-29427 Fixed
#KT-9618 Fixed
2019-01-23 18:42:58 +03:00
Denis Zharkov ae9cd4aa55 Require JVM_TARGET=1.8 in test that depends on the method from JDK8 2019-01-23 18:25:10 +03:00
Mads Ager fb6eafddf1 JVM_IR: Generate better code for null checks.
Simplify ifs when branches have condition true/false.

Simplify blocks containing only a variable declaration
and a variable get of the same variable. Simplify to
just the condition.

Do not introduce temporary variables for constants for
null checks. Constants have no side-effects and can be
reloaded freely instead of going through a local.

This simplifies code such as "42.toLong()!!" so that the
resulting code has no branches and uses no locals. The
simplifications happen as follows:

```
block
  temp = 42.toLong()
  when
    (temp == null) throw NPE
    (true) load temp

---> null test simplification

block
  temp = 42.toLong()
  when
    (false) throw NPE
    (true) load temp

---> when simplification

block
  temp = 42.toLong()
  load temp

---> block simplification

42.toLong()
```
2019-01-23 15:11:14 +01:00
Vadim Brilyantov d8309f3bd7 Remove statistics extension points for 182 and 191 bunches 2019-01-23 10:49:56 +03:00
Natalia Selezneva 85bd729715 Fix NPE starting IDE Repl Console
consoleView field is initialized in initAndRun inside invokeLaterIfNeeded call.
This may cause NPE in setupGutters if consoleView isn't initialized yet
^KT-29400 Fixed
2019-01-23 10:39:18 +03:00
Nikolay Krasko 0548454581 Minor: clean warnings in KotlinTypedHandler 2019-01-22 17:07:58 +03:00
Nikolay Krasko 5587af95de Auto-close {}` before identifiers in string only after typed '$' (KT-11143)
#KT-11143 Fixed
2019-01-22 17:07:58 +03:00
Yaroslav Ulanovych 30c2b26339 Do not insert closing brace for string template between open brace and identifier (KT-11143)
#KT-11143 Fixed
2019-01-22 17:07:57 +03:00
Nicolay Mitropolsky 44926df47e DelegatingProgressIndicator.setModalityProgress param made nullable in 191 2019-01-22 16:22:04 +03:00
Dmitry Petrov ae8a90f7b4 KT-29144 Interface companion object field should always be ACC_PUBLIC 2019-01-22 15:05:51 +03:00
Dmitry Petrov 129ea49d64 Use effective modality for enum class in JVM_IR 2019-01-22 10:52:54 +03:00
Dmitry Petrov 360bfcaf6a KT-29340 Provide effective modality for enum class in IR
* if enum class has abstract members, then it is ABSTRACT
* otherwise, if enum class has entries with members, then it is OPEN
* otherwise, it is FINAL.
2019-01-22 10:52:54 +03:00
Denis Zharkov efdb4e1d5d Fix assertion caused by wrong equality of DescriptorBasedFunctionHandleForJvm
In case of the same class defined in different modules they contain
different descriptors instances in their scope that might lead
to failing assertion in findConcreteSuperDeclaration
because there are overridden from different modules

It might happen even in the compiler because of different built-in modules
defined for sources-module and for dependencies' one

^KT-29320 Fixed
2019-01-22 09:48:42 +03:00
Vyacheslav Gerasimov 168d2d8cce Add more accept android sdk license hashes 2019-01-22 00:16:24 +03:00
Alexey Tsvetkov 12e481192a Don't use project root as working directory for Kotlin daemon
On windows using a project's root
as a working directory for the daemon
seems to prevent removing the directory
when the daemon runs.

Different projects may share an instance of the daemon,
so the issue will be present only in a project
which started the daemon.
2019-01-21 22:42:55 +03:00
Vyacheslav Gerasimov f58acbeef5 Build: implement useBootstrapStdlib flag
Excludes stdlib projects from build and uses bootstrap stdlib artifacts

 #KT-29205
2019-01-21 21:09:40 +03:00
Vyacheslav Gerasimov 9973446e02 Update bootstrap to 1.3.30-dev-991 2019-01-21 21:09:40 +03:00
Alexander Udalov 4daee6d282 Extract JVM IR backend module out of compiler/backend
The old backend does not depend on IR modules anymore
2019-01-21 19:06:41 +01:00
Yan Zhulanow ad974137b8 Remove Android Extensions from the default JPS classpath 2019-01-21 18:50:11 +03:00
Vyacheslav Gerasimov f30a14ff0f as34: Set until-build to 183.* to support AS 3.4 Beta 2 2019-01-21 18:05:52 +03:00
Vyacheslav Gerasimov 082217a2bd Build: Publish internal maven artifact for jvm-minimal-for-test
#KT-29204
2019-01-21 17:01:43 +03:00
Vyacheslav Gerasimov 1ba80adc7f Build: Publish internal maven artifact for builtins
#KT-29204
2019-01-21 17:01:43 +03:00
Vyacheslav Gerasimov 46d9d5456f Build: Change builtins artifact configuration to default 2019-01-21 17:01:43 +03:00
Vyacheslav Gerasimov 0d8c779190 Build: Change builtins serialization task output directory to local 2019-01-21 17:01:43 +03:00
Mikhail Glukhikh 8201756a4c Use correct project for settings.gradle manipulations #KT-29333 Fixed
Otherwise we get an error "Element from alien project".
See details in added comment.
2019-01-21 14:30:44 +03:00
Mikhael Bogdanov f10c9206e2 Minor. Fix test data 2019-01-21 12:12:34 +01:00
Mikhael Bogdanov b763104ca0 Fix package name to fix android tests 2019-01-21 11:21:16 +01:00
Dmitry Petrov 202e992ae3 psi2ir: handle 'this' as reference to a super companion object
In super class constructor arguments, 'this' can be resolved
as a reference to a companion object of a superclass.
This breaks an assumption in psi2ir that 'this' can only refer to some
receiver from the current scope.

If 'this' refers to an 'object' (including 'companion obejct'),
and we are not inside the corresponding class scope,
then 'this' represents a reference to a singleton instance "by name"
(represented as IrGetObjectValue).
2019-01-21 10:56:02 +03:00
Nicolay Mitropolsky 9c8188002d 191: ProjectScopeStatsReporters.kt: adding KotlinMavenTargetTrigger and KotlinJPSTargetTrigger to the bunch 2019-01-19 12:06:42 +03:00
Mads Ager 690b8e0ac9 JVM_IR: Optimize null checks.
Introduce lowering to remove null checks for primitive type
expressions and replace them with true/false. Side-effects
are preserved.

Generate ifnull/ifnonnull instructions for null checks instead
of materializing a null literal for an equality check.
2019-01-19 09:43:43 +01:00
Vadim Brilyantov f5312f42c5 Collect Maven and JPS targets 2019-01-19 02:37:09 +03:00
Vyacheslav Gerasimov 04b705ef2c 183: Set until-build to 183.*
We have separate plugin for 191 now
2019-01-18 22:52:57 +03:00
Vyacheslav Gerasimov ff34078663 191: Temporary drop ProjectScopeStatsReporters (apis heavily refactored) 2019-01-18 21:52:45 +03:00
Ilya Chernikov 877dd7ee47 Change default jvmTarget for scripts compilation via jvmhost to 1.8
#KT-29319 fixed
2019-01-18 18:17:47 +01:00
Ilya Chernikov a6c90f13c2 Implement test for #KT-29301, #KT-29296 and #KT-29293 2019-01-18 18:17:46 +01:00
Ilya Chernikov 5fffeda534 Keep ivy resolvers in the main-kts.jar
#KT-29301 fixed
2019-01-18 18:17:45 +01:00
Ilya Chernikov 2bb5e8f51f Implement and use helpers for economical classpath update in script configs 2019-01-18 18:17:45 +01:00