Commit Graph

41818 Commits

Author SHA1 Message Date
Dmitry Petrov 7e808bd3ea Add more tests for constructor call evaluation order
- break in arguments
- continue in arguments
- early return in arguments
- non-local return in arguments
- nested constructor call in arguments
2017-10-04 13:39:48 +03:00
Dmitry Petrov c3d74bdabb Support jump out of the constructor call in suspend functions
Jump out from expression (e.g., break or continue expression in call
arguments) requires stack normalization, which inserts POP instructions.
POPping an uninitialized value is similar to ASTORE, except that it
doesn't store a value to a local variable. Such POP instructions should
be removed during postprocessing of the uninitialized stores.
2017-10-04 13:39:48 +03:00
Dmitry Petrov da6841163b Maintain evaluation order for suspend calls in constructor arguments
Insert 'Class.forName(...)' in place of NEW instruction, so that the
corresponding class will be initialized if required.
2017-10-04 13:39:48 +03:00
Dmitry Petrov 533c1d2541 Reject bytecode manipulating with uninitialized values on stack
NB this will break parcel-related tests in android-extensions compiler
plugin
2017-10-04 13:39:48 +03:00
Dmitry Petrov 3405ae30a1 Inner classes of generic classes can't extend Throwable
Do it in the same way as Java: prohibit inner classes (including
anonymous inner classes) capturing type parameters from outer classes
(but not outer methods) extending Throwable.

See KT-17981:
- Deprecated in 1.2
- Error in 1.3
2017-10-04 12:43:50 +03:00
Alexey Andreev 27e319a279 JS: fix parsing of object literals in js() function.
Also, fix generation of source maps of content of js() function.

See KT-19794
2017-10-04 12:01:51 +03:00
Alexey Andreev c15847a957 JS: support non-local return from secondary constructor
See KT-14549
2017-10-04 12:00:53 +03:00
Alexey Andreev e323da3c5e Fix compilation of Maven JS plugin 2017-10-03 17:23:02 +03:00
e5l cbaf38f793 Add CLI test on new jsr305 flag values 2017-10-03 16:44:02 +03:00
e5l 1e157d6480 Use report policy from TypeQualifierDefault annotation if possible 2017-10-03 16:44:02 +03:00
e5l c512db8e1c Validate -Xjsr305 value in CLI 2017-10-03 16:44:02 +03:00
Leonid Stashevsky 95d32d8d1e Add @UnderMigration annotation and options for report level 2017-10-03 16:44:02 +03:00
Nikolay Krasko a524bde9b7 Rename: JetRunConfiguration* -> KotlinRunConfiguration* 2017-10-03 16:18:54 +03:00
Nikolay Krasko 0bffd04ef1 Add kotlin.stdlib requirement to module-info on configure (KT-19207)
KotlinAddRequiredModuleFix is almost copy ofAddRequiredModuleFix from
the platform but it moves actual fix method to static with less
parameters and checks directive presence before add.

 #KT-19207 Fixed
2017-10-03 16:18:53 +03:00
Nikolay Krasko 2634ed15fa Configure sdk properly in configure Kotlin tests 2017-10-03 16:10:33 +03:00
Nikolay Krasko 0f61a0f7bd Fix file root access failure in configure tests 2017-10-03 16:10:33 +03:00
Nikolay Krasko dc86f8c432 Refactoring: extract "kotlin.stdlib" to constant
It will be used in IDE as well.
2017-10-03 16:10:33 +03:00
Nikolay Krasko 3145c096a7 Refactoring: introduce Sdk.version extension
(cherry picked from commit d387e6e)
2017-10-03 16:10:33 +03:00
Nikolay Krasko 4cdd4c04a3 Run configurations with module path for Java 9 named modules (KT-19886)
#KT-19886 Fixed

(cherry picked from commit 1e12828)
2017-10-03 16:10:33 +03:00
Nikolay Krasko 166682937f Copy mock JDK 9 from intellij idea
(cherry picked from commit aef9220)
2017-10-03 16:10:33 +03:00
Nikolay Krasko 8aa4b75e1c Quick fix for module is absent in module-info requirements (KT-20108)
#KT-20108 Fixed
2017-10-03 16:10:32 +03:00
Simon Ogorodnik 228588a87c Fix TestExecutedOnlyOnceTest by properly setting RunWith
When test contains nested test classes
Both root and nested classes should be annotated with
`@RunWith(JUnit3RunnerWithInners.class)`
to avoid running tests twice
2017-10-03 15:45:36 +03:00
Simon Ogorodnik 289b0862a7 Fix MavenTestCase to use Maven mirror only when it available 2017-10-03 15:18:04 +03:00
Alexey Andreev 10f7f61991 Fix compilation of Gradle JS task 2017-10-03 14:50:24 +03:00
Alexey Andreev 21e91c4052 JS: rename -source-map-source-roots to -source-map-base-dirs
See KT-19906
2017-10-03 14:26:37 +03:00
Mikhail Glukhikh b3fe572447 Minor fix for EA-108087 2017-10-03 11:05:21 +03:00
Mikhail Glukhikh 5c4c77a80a Determine enclosing element correctly inside base constructor
So #KT-17680 Fixed
So #KT-18740 Fixed
So EA-76201 Fixed
2017-10-03 11:05:21 +03:00
Nicolay Mitropolsky b839081349 Support for collections literals in LightAnnotations (KT-20543) 2017-10-02 18:44:23 +03:00
Alexey Sedunov b288406e3c Multiplatform: Fix dependencies of implementing module descriptors cache
This fixes some failing tests
2017-10-02 18:14:05 +03:00
Alexey Sedunov 67798d73a1 Minor: Fix multi-module test data
This is required since "implements" dependency is now specified
explicitly in the Kotlin facet configuration
2017-10-02 18:14:04 +03:00
Alexey Sedunov ea99a2b537 Kotlin Facet: Fix deserialization of "implements" dependency 2017-10-02 18:14:04 +03:00
Alexey Sedunov 9afd2d367b Minor: Fix ReferenceResolveTestGenerated test data 2017-10-02 18:14:04 +03:00
Alexey Sedunov aabe23d410 Minor: Fix coroutine package name in quick fix tests 2017-10-02 18:14:04 +03:00
Toshiaki Kameyama 2121322665 Fix useless "Remove curly braces" before Chinese character
So #KT-20409 Fixed
2017-10-02 17:46:07 +03:00
Mikhail Glukhikh 912ddfcb2b Build name correctly in ShadowedDeclarationsFilter
So #KT-16383 Fixed
Also should fix EA-104812, EA-99338, EA-107064
2017-10-02 17:41:24 +03:00
Mikhail Glukhikh 9aa25f8af8 Code cleanup: shadowed declarations filter 2017-10-02 17:41:24 +03:00
Denis Zharkov edbf360852 Do not render trivial variables in DataFlow tests
The reason is that while there are optimizations for them
definition of their state is both rather simple and may be
confusing in testData
2017-10-02 10:04:16 +03:00
Denis Zharkov 477aeef90c Update test data for rendered CFA results after optimizations 2017-10-02 10:04:16 +03:00
Denis Zharkov a51078fda6 Turn off optimizations in case of do-while presence 2017-10-02 10:04:16 +03:00
Denis Zharkov c31b5beb9e Remove redundant check for a variable being initialized after write
It's anyway is obvious for write instruction, while effectively
after optimizations we treat val with syntactic initializer
uninitialized until their immediate initiazer
2017-10-02 10:04:16 +03:00
Denis Zharkov 8eb36947ca Minor. Invert and extract condition for checkAssignmentBeforeDeclaration 2017-10-02 10:04:16 +03:00
Denis Zharkov 527daced46 Optimize CFG for cases of simple variables
Parameters/vals with an immediate initializer (which we assume is a
rather common situation) do not require any kind of complicated CFA

- Unused vals can be simply determined by linear traversal of
  the pseudocode
- Definite assignment is a bit more complicated: a read-instruction of val
  can be considered as a safe if it's located *after* the first write in
  the pseudocode. It works almost always beside the case with do/while
  (see the test changed). This case will be fixed in the further commits

The test for kt897.kt will also be fixed further, all other changes
might be considered as minor as they mostly change diagnostics for
already red code
2017-10-02 10:04:16 +03:00
Denis Zharkov 4b79269cec Extract ReadOnly*ControlFlowInfo interfaces from *ControlFlowInfo
It's necessary for further optimizations: not for all cases we actually
need to build a map

The naming is still a subject for discussion
2017-10-02 10:04:16 +03:00
Ilya Gorbunov 791bfde64b Fork ivy download process
Helps to fix download hangs under some circumstances.
2017-10-02 05:24:28 +03:00
Alexey Tsvetkov 72d2e7dd45 Minor: restore accidentally removed import 2017-09-29 21:40:54 +03:00
Alexey Tsvetkov a8cfe19769 Add option to debug Kotlin daemon in Gradle integration tests 2017-09-29 15:19:36 +03:00
Alexey Tsvetkov 39f49f1449 Ensure dependencies are installed before running Gradle integration tests 2017-09-29 15:19:36 +03:00
Alexander Udalov 5348d2e43a Consider module output as part of the same Java module
This fixes incremental compilation for explicit Java 9 modules

 #KT-20064 Fixed
 #KT-20082 Fixed
2017-09-29 15:10:38 +03:00
Alexander Udalov 0a9c21dbc8 Refactor roots computation in ClasspathRootsResolver 2017-09-29 15:10:37 +03:00
Alexander Udalov 848be226ed Minor, invert JavaModule.isBinary -> isSourceModule 2017-09-29 15:10:37 +03:00