Commit Graph

37942 Commits

Author SHA1 Message Date
Ilya Gorbunov 4018db680e Sequence operation classification regarding their statefulness and laziness.
#KT-16994 Fixed
2017-03-24 19:06:06 +03:00
Alexey Tsvetkov 0a4c43a5f1 Fallback to ProcessBuilder when native ProcessLauncher fails
#KT-16902 fixed
2017-03-24 19:03:41 +03:00
Alexey Tsvetkov 9d95c841a6 Use connect-and-lease when using daemon in JPS & Gradle
Relates to KT-15562 "Service is dying".

This commit includes multiple changes:
 1. JPS & Gradle daemon clients are refactored to use `connectAndLease` from `KotlinCompilerClient`.
 `connectAndLease` was introduced in previous commits
 2. `withKotlin` was removed because `connectAndLease` already covers retrying on connection error
 3. Gradle flag files creation is changed:
   * client-alive flag file lives as long as Gradle instance lives,
   * session-alive flag file lives until the end of a build.
2017-03-24 19:03:36 +03:00
Alexey Tsvetkov 9819de1abd Improve daemon client debug reports
Before this change a daemon client debug messages were printed
only when the client could not connect and the 'kotlin.daemon.verbose'
system property was set up.

Now messages are printed if the debug logging is enabled and
the 'kotlin.daemon.verbose' is set up.
2017-03-24 19:03:32 +03:00
Alexey Tsvetkov c5324fcc50 Speed up daemon startup when DNS timeouts
#KT-16917 fixed

The daemon code contained the following code:
```
ManagementFactory.getRuntimeMXBean().name
```

As it turns out `RuntimeImpl#getName` calls `VMManagementImpl#getVmId`,
which in turn calls `InetAddress.getLocalHost().getHostName()`.

`InetAddress.getLocalHost()` tries to resolve by making a DNS-request.
In case of a DNS-problem or a network misconfiguration,
resolving localhost can be very slow,
so a daemon client can disconnect
by the timeout (10 seconds) and fallback to the non-daemon compilation.

This change removes the call `getRuntimeMXBean().name`
(it is only used for logs).
2017-03-24 19:03:28 +03:00
Alexey Tsvetkov da24a99b91 Set 'java.rmi.server.hostname' property on client too
The RMI documentation (http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/javarmiproperties.html)
says it is useful to set up a `java.rmi.server.hostname`
system property on a client and a server.
When the property is set up on a client, I saw that "RenewClean" threads
stopped listening to my external IP, so all client and server threads
are now only listening the loopback interface.

I also changed the way the property is set up on the server side:
before the change it was passed in jvmargs at a process launcher.
I moved this code directly to the main method of the daemon,
because it is easy to forget to set up the property,
when running the main for debug purposes.
2017-03-24 19:03:24 +03:00
Alexey Tsvetkov f748dc625c Minor: print errors to stderr when gradle test build
It takes time to find compile errors or exceptions,
when a Gradle test build fails, because a debug log
is very verbose.
This change prints all error messages from Gradle
when a test build fails unexpectedly.
2017-03-24 19:03:19 +03:00
Dmitry Jemerov 961d83fcd4 Bump code cache size (64m is no longer enough under JDK 8) 2017-03-24 16:40:23 +01:00
Dmitry Jemerov 859e3e17b4 Bump code cache size (64m is no longer enough under JDK 8) 2017-03-24 16:37:11 +01:00
Vyacheslav Gerasimov 543f59bf54 Add new quickfix for CanBePrimaryConstructorPropertyInspection
MovePropertyToConstructorIntention is used as quick fix
2017-03-24 17:38:52 +03:00
mglukhikh 4700936f66 DFA: count null comparison as identity comparison #KT-16538 Fixed
+ minor parameter refactoring
2017-03-24 17:33:42 +03:00
Mikhail Glukhikh b5aa529901 Make inspection "lambda->reference" off by default #KT-17002 Fixed 2017-03-24 16:20:07 +03:00
Mikhail Glukhikh b121990368 Don't suggest 'remove let' when 'it' is used multiple times
So #KT-16857 Fixed
2017-03-24 16:20:00 +03:00
Mikhail Glukhikh 4687a867c3 Anti-KNPE refactoring of RedundantSamConstructorInspection
So EA-84354 fixed
2017-03-24 16:19:47 +03:00
Mikhail Glukhikh 6f4ae2585b Fix "surround with null check": place check correctly for unsafe call
So #KT-16928 Fixed
2017-03-24 16:19:32 +03:00
Mikhail Glukhikh bbdcf19123 Fix "secondary constructor -> primary" in case of implicit super call
So #KT-16903 Fixed
2017-03-24 16:19:18 +03:00
Mikhail Glukhikh 0baae16601 Don't apply "object->lambda" if 'this' is used inside #KT-15250 Fixed 2017-03-24 16:19:04 +03:00
Mikhail Glukhikh ca92ec0b7b Fix "Specify explicit lambda signature" when no parameters exists
So #KT-15075 Fixed
2017-03-24 16:18:56 +03:00
Vyacheslav Gerasimov f60a7ffab0 Add intentions to move property from/to primary constructor
#KT-4578 Fixed
2017-03-24 15:22:50 +03:00
Alexander Udalov fef4c8ccd8 Fix VerifyError on bound function reference on generic property
Also add a test for obsolete KT-14755

 #KT-16929 Fixed
2017-03-24 11:06:15 +03:00
Dmitry Petrov fc38479f48 References to enum entries should be always generated as GET_ENUM 2017-03-24 10:06:10 +03:00
Dmitry Petrov 64013171e8 KT-16905 Wrong IR for call to inner class constructor through typealias 2017-03-24 10:06:10 +03:00
Dmitry Petrov d05de88e3e KT-16904 Wrong IR when applying some operators to superclass properties in constructor
Use property accessors for assignment generation for inherited properties in constructor.
2017-03-24 10:06:10 +03:00
Nikolay Krasko 5405c81106 Minor: remove warnings in KotlinDebuggerTestBase 2017-03-23 21:01:42 +03:00
Nikolay Krasko dfd7b0f388 Delegate step into command to kotlin command provider first 2017-03-23 21:01:42 +03:00
Nikolay Krasko 2c4f702d50 Remove stored contexts in tests to avoid leaks 2017-03-23 21:01:42 +03:00
Nikolay Krasko 2aa1b19ec9 Replace CompilingEvaluatorUtils methods with ClassLoadingUtils 2017-03-23 21:01:42 +03:00
Ilya Chernikov 3b60d56c0b minor: fixing maven plugin tests 2017-03-23 18:11:40 +01:00
Ilya Chernikov 4d7e64614a Make daemon tests more stable
Probably due to switching to the JDK8, the daemon tests became more flaky.
Making it less reliable on the log file closing. And try to close log files
on the daemon side.
Also improving diagnostics on many tests.

Also weaken parallel daemon start test a bit since it seems it is failing
on the RMI timeouts now.
2017-03-23 18:11:39 +01:00
Ilya Chernikov c034a73d72 Extract and reuse JarFS-related IO fallback configurator function
Partly fixes #KT-16927
2017-03-23 18:11:38 +01:00
Ilya Chernikov e59f6741c4 Move GradleScriptTemplatesProvider to the optional gradle part of "plugin.xml"
Fixes #KT-16649
2017-03-23 18:11:37 +01:00
Ilya Chernikov 8eaeadddfa Disable flaky statistical benchmark tests for source sections plugin and JSR 223 2017-03-23 18:11:36 +01:00
Ilya Chernikov 3061862d31 Fix classloader extraction from script template
fixes #KT-16699
2017-03-23 18:11:35 +01:00
Ilya Chernikov 6b477e9f38 Remove jna from compiler-embeddable
It is considered in fact unused in the compiler
Fixes #KT-16862
2017-03-23 18:10:55 +01:00
Ilya Chernikov 319440718c Add more JSR 223 and repl tests, fix double aggregation of GenericRepl state
- repl test with compilation error
- JSR 223 compilable tests
2017-03-23 18:07:45 +01:00
Ilya Chernikov adc541c3b1 minor: Move sameSignature function into single use site to avoid local build problems 2017-03-23 18:07:44 +01:00
Dmitry Jemerov b24ce04dea Convert IntentionTestGenerated to light fixture test case 2017-03-23 15:48:33 +01:00
Dmitry Jemerov 5af423f1b4 Allow configuring kotlin.test in KotlinLightCodeInsightFixtureTestCase 2017-03-23 15:48:33 +01:00
Dmitry Jemerov 036b87a001 KotlinJdkAndLibraryProjectDescriptor: J2K 2017-03-23 15:48:33 +01:00
Dmitry Jemerov 1435f11a9f KotlinJdkAndLibraryProjectDescriptor: rename to .kt 2017-03-23 15:48:33 +01:00
Dmitry Jemerov 24bdf994a9 AbstractIntentionTest: J2K 2017-03-23 15:48:33 +01:00
Dmitry Jemerov 68ec8b3077 AbstractIntentionTest: rename to .kt 2017-03-23 15:48:33 +01:00
Dmitry Jemerov 199ce6706b Convert AbstractConcatenatedStringGeneratorTest to light test case
Remove explicit library configuration; rely on
getProjectDescriptorFromFileDirective() instead.
2017-03-23 15:48:33 +01:00
Mikhail Glukhikh 1780f7c9a2 Put not-null original type as last possible smart cast target
This fixes muted tests testSmartCast (IDE highlighting) and
testNestedSealed (Diagnostics).
Together with commit 555b3f12 this makes #KT-15901 Fixed
2017-03-23 17:17:37 +03:00
Ilya Gorbunov 1cb4580380 Refactor: rename 'check' helper function with more descriptive name, remove 'var result' 2017-03-23 16:48:38 +03:00
Ilya Gorbunov dce0da68c6 Cleanup: post-cleanup after deprecation cleanup in compiler
Replace `takeIf { !expr }` with `takeUnless { expr }`.
Cleanup redundant parethesis as in `listOf((expr))`.
Replace `listOf(expr)` with `expr.let(::listOf)` where the former caused significant indentation change.
2017-03-23 16:48:38 +03:00
Nikolay Krasko e599688733 "Go to Type Declaration" for extension receiver and 'it' (KT-13013)
#KT-13013 Fixed
2017-03-23 13:37:06 +03:00
Nikolay Krasko daaa59a1ad Navigate to receiver from this in extension function (KT-16991)
#KT-16991 Fixed
 #KT-13013 In Progress
2017-03-23 13:37:05 +03:00
Nikolay Krasko 9dfc92c55e Navigate to lambda declaration from generated 'it' (KT-16992)
#KT-16992 Fixed
 #KT-13013 In Progress
2017-03-23 13:37:05 +03:00
Nikolay Krasko c976c3d909 Refactoring: extract common function (some usages were slightly changed) 2017-03-23 13:37:05 +03:00