Commit Graph

36500 Commits

Author SHA1 Message Date
Alexey Tsvetkov d19a92bab5 Make ICReporter interface 2017-01-13 15:08:12 +03:00
Alexey Tsvetkov d80c1ad10d Add integer value to compiler message severity 2017-01-13 15:08:12 +03:00
Alexey Tsvetkov 1fcd7d07e2 Make compiler arguments serializable 2017-01-13 15:08:12 +03:00
Dmitry Petrov 8756f00849 Fix testData for debugger test. 2017-01-13 13:54:07 +03:00
Ilya Chernikov 1e68b2436f Relocate non-native/jni part of net.rubygrapefruit.platform in attempt to fix #KT-15570 2017-01-13 10:48:29 +01:00
Alexander Udalov 2ba18beb89 Report JVM runtime version inconsistency as errors instead of warnings
(cherry picked from commit f8fc7e94ac07d80f332149529b34297b7f0db82e)
2017-01-13 11:53:52 +03:00
Alexander Udalov e3f4b6e77e Do not allow to use suspend functions in 1.0.6+ 2017-01-13 11:53:52 +03:00
Dmitry Petrov 4dd100122b Explicitly remove NOPs inserted for bytecode analysis in post-conditional loops.
Remove redundant NOPs during bytecode optimization.

NOP instruction is required iff one of the following is true:
(a) it is a first bytecode instruction in a try-catch block (JVM BE assumption);
(b) it is a sole bytecode instruction in a source code line (breakpoints on that line will not work).
All other NOP instructions can be removed.

Note that it doesn't really affect the performance for mature JVM implementations.
However, the perceived quality of the generated code is somewhat improved :).

Related: KT-15609
2017-01-13 10:31:07 +03:00
Dmitry Petrov ba933fa887 KT-15112, KT-15631
Revert changes for "tolerant to uninitialized values" in OptimizationBasicInterpreter:
this approach doesn't converge for some specific cases where local variable is reused
(e.g., in several inlined functions - see https://youtrack.jetbrains.com/issue/KT-15112).

Instead, treat fake always-false conditional jump in the beginning of the post-condition loop as a "reference point" for stack on loop break / continue.
This requires an extra abstraction layer in FixStackAnalyzer, since we can't perform fine-grain manipulations on Frames
(such as "combine frame C from local variables of frame A and stack of frame B").

NB additional NOPs will be generated for post-condition loops.
Should make a separate bytecode postprocessing pass to get rid of unnecessary NOPs
(several YT issues for perceived quality of the generated bytecode are about such NOPs).
2017-01-13 10:31:07 +03:00
Mikhail Glukhikh c09a71b178 Multi-platform refactoring: get rid of PlatformKind (replace with MultiTargetPlatform) 2017-01-12 18:58:13 +03:00
Mikhail Glukhikh aeb6bff145 Create header implementation fix: check import directive, change / add it if needed 2017-01-12 18:58:07 +03:00
Alexey Andreev f33d421bab JS: make JS parser to store function's name in AST. See KT-15475 2017-01-12 18:12:40 +03:00
Alexey Andreev a016147a79 JS: fix translation of return statement surrounded by try..finally block in suspend lambda. See KT-15625 2017-01-12 18:12:39 +03:00
Alexey Andreev 2907eafa18 JS: make functions called call to inline properly. See KT-7004 2017-01-12 18:12:39 +03:00
Alexey Andreev 10a3fbf53f JS: disable TemporaryAssignmentElimination, fix KT-15512 2017-01-12 18:12:39 +03:00
Alexey Andreev 7d170c0fcd JS: fix translation of reassignment of inline properties. See KT-15590 2017-01-12 18:12:38 +03:00
Alexey Andreev 4eed7c1fcb JS: fix translation of augmented assignment in class initializer. See KT-15569 2017-01-12 18:12:38 +03:00
Alexey Andreev ee74342fbe JS: fix compiler crash when optimizing JS AST with empty do..while statement. See KT-15513 2017-01-12 18:12:37 +03:00
Alexey Andreev bad6f41d6e JS: make some JVM tests compatible with JS BE 2017-01-12 18:12:37 +03:00
Alexey Andreev 70176dfacc JS: translate call arguments in the order the occur in source code, not in order of parameters in descriptor. See KT-15506 2017-01-12 18:12:36 +03:00
Alexey Andreev e6b78f68cd JS: support case when class inherits method from superclass and both implements same method (but with optional parameter) from superinterface. 2017-01-12 18:12:36 +03:00
Alexey Andreev d2050ace72 JS: refactor generation of functions with optional parameters. Fix #KT-7302, #KT-13888 2017-01-12 18:12:35 +03:00
Simon Ogorodnik 4b3cf432dc KT-5629 Quickfix to import extension method when arguments of non-extension method do not match
#KT-5629 fixed
2017-01-12 18:06:31 +03:00
Dmitry Jemerov f8f73d338b Use UTryStatement.isResources() instead of getting the resource list (for which there is no portable API ATM) 2017-01-12 14:30:49 +01:00
Simon Ogorodnik 0cf02dcb7b KT-15092 Suppress inspection "use property access syntax" for some getters and fix completion for them
#KT-15092 fixed
2017-01-12 14:53:38 +03:00
Nikolay Krasko c1538aea43 Get annotation for injection from reference descriptor (KT-15548)
#KT-15548 Fixed
2017-01-12 14:21:47 +03:00
Nikolay Krasko 0cbe19b930 Remove unused files 2017-01-12 13:49:31 +03:00
Alexander Udalov abe2ad155c Sanitize names for script class files
Use the same process that is done for package parts in the JVM back-end, except
adding the "Kt" suffix

 #KT-15225 Fixed
2017-01-12 11:24:24 +03:00
Alexander Udalov 6ffa56b640 Move name sanitization utilities to module 'descriptors' 2017-01-12 11:24:23 +03:00
Alexander Udalov f4d59304e2 Fix JvmPackageTableTest by preserving package order in ModuleMapping.create 2017-01-12 11:08:23 +03:00
Svyatoslav Scherbina d9023bdf70 backend: move some JVM lowering to common 2017-01-12 11:56:32 +07:00
Svyatoslav Scherbina 5a5f4fc224 backend: extract common lowering utils 2017-01-12 11:56:31 +07:00
Svyatoslav Scherbina f85538129d backend: introduce common backend context 2017-01-12 11:56:30 +07:00
Svyatoslav Scherbina 2e88dd0675 backend: fix minor bug in LocalFunctionsLowering
extension receiver parameter should be remapped too
(e.g. to support lambda with receiver)
2017-01-12 11:56:29 +07:00
Svyatoslav Scherbina e6c9a709b2 backend: fix minor bug in SharedVariablesLowering 2017-01-12 11:56:28 +07:00
Simon Ogorodnik c5e3f0ad01 KT-15141 Bogus import popup for when function call cannot be resolved fully
#KT-15141 fixed
2017-01-11 22:41:09 +03:00
Simon Ogorodnik db8edb01c3 KT-14815 alt + enter -> "import" over a constructor reference is not working
#KT-14815 fixed
2017-01-11 22:41:09 +03:00
Simon Ogorodnik f9b2929bca KT-15154 IllegalStateException on attempt to convert import statement to * if last added import is to typealias
#KT-15154 fixed
2017-01-11 22:41:08 +03:00
Ilya Gorbunov 6273ab5d43 Hold back eachSumOf for a while: fixups.
Remove unneeded import.
2017-01-11 20:04:00 +03:00
Alexander Udalov edb4fd1dfd Do not emit pre-release flag if -Xskip-metadata-version-check is used
The -Xskip-metadata-version-check command line argument is supposed to be used
to avoid getting errors only; the side effect that it also caused compiler to
write the pre-release flag to binaries was a mistake and is fixed now
2017-01-11 19:28:52 +03:00
Alexander Udalov 8f9ce5d0f2 Fix some issues in script constructor param/arg matching 2017-01-11 19:28:51 +03:00
Alexander Udalov 453c5267ad Fix detection of scripts in cls stub builder 2017-01-11 19:28:51 +03:00
Alexander Udalov e860d620c6 Add script flag to kotlin.Metadata
This will allow to distinguish compiled scripts from ordinary classes in the
compiler, reflection, IDE, etc.

 #KT-13382 Fixed
2017-01-11 19:28:51 +03:00
Mikhail Glukhikh 7c6d5c825c Join declaration & assignment is no more suggested in case of potential smart cast available #KT-15412 Fixed 2017-01-11 19:10:09 +03:00
Mikhail Glukhikh 31a8689999 Do not count 'impl' or 'header' with implementations as unused #KT-15305 Fixed 2017-01-11 18:37:55 +03:00
Mikhail Glukhikh 586246002c Create header implementation fix: do not use Swing inside write action 2017-01-11 18:37:50 +03:00
Mikhail Glukhikh b0a333456e Platform header IDE annotation: do not report suppressed error #KT-15601 Fixed 2017-01-11 18:37:44 +03:00
Mikhail Glukhikh 76ee6d7712 Minor: multi-platform highlighting tests rename 2017-01-11 18:37:38 +03:00
Sergey Mashkov 892e36412d IDL2K: KT-15436 js stdlib: org.w3c.fetch.RequestInit has 12 parameters, all required 2017-01-11 18:07:47 +03:00
Sergey Mashkov 099cd819f7 IDL2K: KT-15436 js stdlib: org.w3c.fetch.RequestInit has 12 parameters, all required 2017-01-11 18:07:46 +03:00