Dmitriy Novozhilov
31776d9a3b
[CFA] Mark arguments of all annotation calls as USED_AS_EXPRESSION
...
Also revert hacky fix of KT-37294 introduced in 80caa063b
#KT-37447 Fixed
2020-03-13 14:32:28 +03:00
Alexander Udalov
8a4510c21b
Regenerate tests
2020-01-02 10:31:00 +01:00
Dmitriy Novozhilov
e7f8c8e155
[TEST] Regenerate tests after previous commit
2019-12-12 16:11:45 +03:00
Nikolay Krasko
4ed64b0283
Regenerate tests with TargetBackend.ANY remove and using runTest with this
2019-10-23 12:49:48 +03:00
nikita.movshin
65244b4bea
Update copyright.
...
Change the copyright from "JetBrains s.r.o." to
"JetBrains s.r.o. and Kotlin Project contributors"
Update only 2 lines copyright.
2019-04-23 20:09:22 +03:00
Mikhael Bogdanov
cf47bc0130
Update copyright in generated compiler tests
2019-01-02 12:37:06 +01:00
Dmitry Savvinov
c9e87bf353
Add test on in-place lambda with return + safecall
...
Currently, diagnostics behavior is undesired. The next commit fixes it
^KT-28061 In Progress
2018-12-10 13:38:43 +03:00
Denis Zharkov
3bdfd811e8
Add some new String methods in JDK 11 to built-ins mapping blacklist
...
These three methods are conflicting with existing extensions,
thus the behavior might be changed when switching to JDK 11
Probably, it's worth revisiting our strategy here,
e.g. by blacklisting all new methods in
#KT-24974 Fixed
2018-08-31 10:33:09 +03:00
Dmitry Savvinov
5cb949ad7f
Fix language features in tests for gradual migration to 1.3 (part 2)
...
In 1.3, due to changes in language, testdata for some tests can be
different from 1.2
We want to simlultaneously test both versions, so instead of fixing
language version in such tests, we split them into two: one with fixed
1.2, another with fixed 1.3
2018-07-05 10:42:49 +03:00
Zalim Bashorov
ab03ab84bb
Regenerate tests
2018-04-19 13:17:27 +03:00
Zalim Bashorov
9970dd051f
Fix copyright's start year in generated tests
2018-03-14 15:04:58 +03:00
Dmitry Jemerov
e80dae1802
Update copyright in generated tests
2018-01-10 11:55:28 +01:00
Mikhail Glukhikh
8e23ca597d
Add extra tests for KT-20429, simplify code a bit
2017-12-28 20:31:44 +03:00
Mikhael Bogdanov
f529069077
Move common test parts to tests-common. Minify test jar dependencies
2017-11-28 11:04:39 +01:00
Mikhail Zarechenskiy
cd2d32d92a
Set up specific LV settings for compiler tests
...
For example, to configure NI
(cherry picked from commit e0c6aec)
2017-11-13 16:27:25 +03:00
Mikhail Zarechenskiy
91a6591b70
Load compiler language version settings for resolved calls tests
2017-11-13 16:27:24 +03:00
Mikhail Zarechenskiy
63b13027df
Configure pseudocode tests with !LANGUAGE directive
...
Except all, it's also useful to use one class of language version settings for compiler tests to configure it specially for tests
2017-11-13 16:27:20 +03:00
Alexander Udalov
825aff7ac6
Minor, do not produce trailing spaces in AbstractPseudoValueTest
2017-10-18 12:45:45 +02:00
Dmitry Savvinov
f487525a1d
Effects: add cfg-tests on inlined lambdas
...
==========
Introduction of Effect System: 15/18
2017-10-12 11:55:26 +03:00
Dmitry Savvinov
a986999226
Effects: support cfg tests with stdlib
...
- Add method "doTestWithStdLib" which launches test with stdlib
- Change GenerateTests.kt to generate cfg tests with stdlib from
folders 'cfgWithStdLib' and 'cfgVariablesWithStdLib'
==========
Introduction of Effect System: 14/18
2017-10-12 11:55:26 +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
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
Alexander Udalov
8db736e2b4
Support FULL_JDK directive in diagnostic tests
2017-08-17 12:35:56 +03:00
Mikhail Glukhikh
c0e1b3ef2d
CFG: fix label binding for last instruction of finally block
...
So #KT-18698 Fixed
2017-07-18 14:37:13 +03:00
Denis Zharkov
5e449fdc02
Optimize control-flow analysis by use of persistent maps
...
The case that it's worth to optimize is functions
with a lot of variables.
After debugging it's recovered that control-flow works nearly
O(n * m) where n is pseudocode size and m is a number of variables:
the algorithm performs O(n) copies of hashmap of size O(m)
Persistent maps should help because we don't need to perform a
copy of them, so the expected performance after the change is applied
is O(n log m)
We've tried pcollections and javaslang, and the latter one has demonstrated
better results
See results before and after optimizations
before:
https://github.com/dzharkov/kotlin-compiler-benchmarks/blob/3da7ba45a704969653d70b50995f730e968540d8/reports/benchmarks-many-vars-2017-03-14.txt
after with pcollections:
https://github.com/dzharkov/kotlin-compiler-benchmarks/blob/3da7ba45a704969653d70b50995f730e968540d8/reports/benchmarks-many-vars-persistent-optimizations-2017-03-17.txt
after with javaslang:
https://github.com/dzharkov/kotlin-compiler-benchmarks/blob/d22a871b175b291fb337b51ef6465ba70bbfd96c/reports/benchmarks-many-vars-javaslang-2017-04-07.txt
2017-04-11 11:26:11 +03:00
Alexander Udalov
d440f07111
Use Java 7+ diamond operator in compiler modules
2017-04-03 14:51:15 +03:00
Alexander Udalov
5ebee6ceca
Use Java 8 lambdas instead of anonymous classes in compiler modules
2017-04-03 14:49:23 +03:00
Alexander Udalov
34f0576135
Invoke "remove unnecessary final" intention in compiler modules
2017-04-03 14:26:52 +03:00
Mikhail Glukhikh
b81268cca1
Control-flow analysis: do-while scope is ended after condition but before jump #KT-15334 Fixed
2017-01-10 17:57:43 +03:00
Mikhail Zarechenskiy
6cccad9647
Update year in license and regenerate tests
2017-01-10 12:01:17 +03:00
Zalim Bashorov
1dedb38481
Regenerate tests
2016-11-09 21:41:12 +03:00
Alexey Sedunov
a414843f54
Control-Flow Analysis: Use PSI to generate pseudocode if nested resolved call is confused with outer one (e.g. a {} when invoke() is missing)
...
#KT-14500 Fixed
2016-11-07 20:03:36 +03:00
Alexey Sedunov
0159ddbc49
Control-Flow Analysis: Do not skip pseudocode for value arguments if they are matched with errors
2016-11-07 20:03:34 +03:00
Mikhail Glukhikh
a19d178867
Initialization analysis : more accurate handling of non-local variables while merging data #KT-14304 Fixed
2016-10-20 19:52:44 +03:00
Mikhail Glukhikh
436b0ec873
CFA merge for definition / initialization : more accurate handling of unknown variables #KT-13969 Fixed
...
(cherry picked from commit 4a96589)
2016-09-29 15:56:47 +03:00
Mikhail Glukhikh
f8039249c6
CFA: additional jumps to catch / finally generated in the end of try / before exits from try #KT-5469 Fixed
...
Also #KT-13612 Fixed
(cherry picked from commit 7c188b3)
2016-08-31 19:28:09 +03:00
Mikhail Glukhikh
6a9d058db4
UNUSED_VALUE is now reported on expression only if this expression is unused in all (e.g. finally) branches #KT-9825 Fixed
...
(cherry picked from commit aac8e94)
2016-08-31 19:28:00 +03:00
Mikhail Glukhikh
08f8a2b75c
PseudocodeLabel is extracted from PseudocodeImpl (now not an inner class), some its properties / functions are supported now by base Label
...
(cherry picked from commit 30dd52e)
2016-08-25 10:31:53 +03:00
Mikhail Glukhikh
04f71bccf2
KT-11769 case with companion function call: error is now detected if companion receiver is stated explicitly
2016-08-12 15:06:38 +03:00
Mikhail Glukhikh
b7ed68db05
CFA: No more UNRESOLVED_CALL for object / enum entry qualifiers
...
(cherry picked from commit 4b09de8)
2016-08-08 17:47:40 +03:00
Stanislav Erokhin
03241419bd
Minor. removed several tests with error calls.
2016-06-10 21:28:04 +03:00
Denis Zharkov
e90c92f8d3
Separate additional built-in members from JDK into three groups
...
- White list: can be used as common built-in declaration
- Black list: can be used only for overrides and super-calls-
- Not considered members: ones that is not in black or white list.
Such members can be used in any context, but they usages marked as deprecated
Third kind is needed to make possible use declarations added in future JDK versions.
Deprecation is necessary because they may get into black list in next Kotlin compiler version
2016-05-16 15:38:13 +03:00
Dotlin
fa523b9af4
Delegated Properties: Analysis adjustments for local delegated properties support
2016-05-13 19:11:18 +03:00
Denis Zharkov
5bf39689e9
Replace irrelevant usages of JvmBuiltIns.Instance with DefaultBuiltIns.Instance
2016-04-25 17:41:08 +03:00
Denis Zharkov
c667f50741
Delete TargetPlatform.builtins
...
Replace it's usages with relevant singleton reference
2016-04-25 17:41:08 +03:00
Mikhail Glukhikh
d24528f6bb
Control flow analysis: nested finally blocks now appear in correct order in CFG #KT-4764 Fixed
2016-04-22 15:16:57 +03:00
Mikhail Glukhikh
a5b428d9ce
Refactoring: CFG.LexicalScope --> CFG.BlockScope #KT-11965 Fixed
2016-04-22 15:16:54 +03:00
Alexey Sedunov
a30b4140de
[RESTORED] Misc: Configure IDEA Ultimate dependencies
2016-04-08 21:07:23 +03:00
Nikolay Krasko
47c7181f2a
Extract tests-common module without any actual tests
...
The main reasoning for the module is to avoid running any compiler tests while executing run configuration that searches tests across module dependencies.
2016-04-08 17:40:38 +03:00
Mikhail Glukhikh
b7e8f71367
Fix of getCorrespondingLoop for complex loop / try-finally trees #KT-8246 Fixed
2016-03-30 18:49:23 +03:00