Dmitry Petrov
f68ce4b35b
Support default parameter values for inline class constructors and funs
...
#KT-26908
#KT-26554
Move default parameter value tests to separate directory
2018-10-15 12:21:14 +03:00
Dmitry Savvinov
99e1d4ab45
Check for the presence of dispatch receiver too in isEqualsDescriptor()
...
Otherwise, top-level function with the name 'equals' and suitable
signature will be (erroneously) treated as true 'equals' invocation,
leading to further exception (see EA-126602)
2018-10-15 10:54:39 +03:00
Natalia Selezneva
c4aab8340b
Do not store script definition in psiFile
...
This may cause problems when definitions are reordered or switched off
KT-27375 Fixed
2018-10-15 09:43:49 +03:00
Nikolay Krasko
ac2bc22f54
Use information from stub for contracts presence
2018-10-12 18:21:39 +03:00
Ilmir Usmanov
9af7316845
Add call checker to report error more granulary if possible
...
This, however, works only for calls of 'synchronized' only. Thus, it
does not support inline functions of any kind.
2018-10-09 22:55:51 +03:00
Alexey Belkov
f3bb952148
Remove useless code to determine default visibility
2018-10-08 13:40:28 +03:00
Dmitry Savvinov
62edf29cbf
Use DataFlowValue instead of Descriptor for equality of ESDataFlowValue
...
Equality of those values is crucial for intersecting data-flow info
coming from expressions like: 'this.x != null || other.x != null'.
Using 'ValueDescriptor' for equality is obviously wrong, because then 'this.x'
and 'other.x' will be treated as equal, leading to unsound smartcasts.
This commit adds proper overload of 'equals' to 'ESDataFlowValue' that
will compare them based on underlying 'DataFlowValue' (which already
distinguish those values)
^KT-27260 Fixed
2018-10-02 11:05:06 +03:00
Ilya Chernikov
c50e880173
Implement more precise diagnostic when a standard script template is missing
...
adapt quickfix accordingly
#KT-26505 fixed
2018-10-01 18:34:15 +02:00
Alexander Udalov
009f18f1f4
Split AnalysisFlag values to AnalysisFlags and JvmAnalysisFlags
...
Declare AnalysisFlags in module 'frontend', and JvmAnalysisFlags in
module 'frontend.java', to avoid leaking Java-related logic to common
compiler code
2018-10-01 13:31:00 +02:00
Denis Zharkov
623c6803d6
Fix regression on smart casts in when on a sealed class
...
See the comment in PatternMatchingTypingVisitor
#KT-27221 Fixed
2018-10-01 09:59:28 +03:00
Dmitry Petrov
0191e3d1cf
Migrate to release coroutines
2018-09-27 21:59:31 +03:00
Dmitry Savvinov
6065095e24
Fix too aggressive data-flow clearing of loop-assigned vars
...
This is effectively a revert of
447c127036 , which was an (incorrect) fix
for KT-22379.
The bug was that we've cleared data-flow info for assigned variables
*after* knowledge that loop condition if 'false' was applied (we can
claim that if loop has no jump-outs). Therefore, we broke smartcasts in
the innocent code like that:
var x: Int? = null
while (x == null) {
x = readPotentiallyNullableInt()
}
// x should be non-null here
Commit reverts that "fix" for 1.3.0 and postpones deprecation until 1.4
KT-22379 Open
KT-27084 Fixed
2018-09-27 12:09:22 +03:00
Alexander Udalov
5713298108
Fix FQ name usage of experimental marker in UseExperimental
...
#KT-26366 Fixed
2018-09-26 18:36:01 +02:00
Mikhail Zarechenskiy
0d103e7f0c
Allow using extensions with trivial-constraints in builder-inference
...
#KT-27079 Fixed
2018-09-26 11:52:23 +03:00
Mikhail Zarechenskiy
0da1b9b80f
Revert "Migration change: temporarily specify type explicitly"
...
This reverts commit bc6e091004 .
This commit was needed to avoid bootstraping, now we can revert it
2018-09-26 11:51:57 +03:00
Natalia Selezneva
8f8c431524
Fix Optimize import for scripts not under source roots
...
KT-17231 Fixed
KT-21981 Fixed
2018-09-21 22:58:14 +03:00
Alexander Udalov
3e90d367f2
Do not report experimental usage errors in import statements
...
#KT-25545 Fixed
2018-09-21 17:35:50 +03:00
Dmitry Petrov
d03237bebc
Generate backing fields and initializers for external constants
2018-09-21 09:50:21 +03:00
aleksZubakov
7e49005bab
Add LazyTopDownAnalyzer in LazyResolve container
2018-09-20 22:24:07 +03:00
Mikhail Zarechenskiy
a4f5cced47
Support coroutine inference under version <= 1.2
...
Follow-up #KT-26958
2018-09-20 17:42:24 +03:00
Alexander Udalov
8c01cd48a5
Report warning instead of error on usages of Experimental/UseExperimental
...
#KT-26936 Fixed
2018-09-18 22:50:26 +03:00
Mikhail Zarechenskiy
bc6e091004
Migration change: temporarily specify type explicitly
...
Because of introduction of `BuilderInference` annotation.
Change it back after bootstrap
2018-09-18 18:55:26 +03:00
Mikhail Zarechenskiy
a293aded5d
Introduce builder-like inference with an explicit opt-in for it
...
- Add marker for the experimental type inference features
- Add annotation that will control builder-like inference
- Require that annotation on corresponding parameters and extensions
- Allow to use builder inference without suspendability
Changes in tests and refactorings (rename mainly) are going to be
introduced in further commits
2018-09-18 18:55:25 +03:00
Mikhail Zarechenskiy
5e9b31ca2c
Minor: invert logic of function
2018-09-18 18:55:25 +03:00
Denis Zharkov
ed7dd6fccb
Minor. Move serialization annotation fq-names to IDE light-classes
...
They are a kind of a hack applied in light-classes and it'd be nice
to prevent them being used in irrelevant contexts
kotlin-serialization-compiler module should not depend on idea,
thus we can't use annotations directly there.
So, we copy-paste them and add a test on names consistency
2018-09-18 18:37:11 +03:00
Simon Ogorodnik
a2cdb14610
Add function to get typed capability from ModuleInfo
2018-09-18 17:33:10 +03:00
Ilmir Usmanov
3bb405bee4
Minor. Move SUSPENSION_POINT_INSIDE_MONITOR to ErrorsJvm
2018-09-17 20:22:49 +03:00
Ilmir Usmanov
2dd5b8fa70
Forbid suspension points in critical sections
...
#KT-26480: Fixed
2018-09-17 19:29:51 +03:00
Denis Zharkov
a4b2e5964a
Do not build dummy light classes for serialization-related classes
...
Otherwise, whether LazyLightClassMemberMatchingError happens
or other type of errors because serialization plugin expects
full resolution in the correct module
Currently, only @Serializable annotation leads to exceptions,
but just in case we consider both of them as potentially problematic
#KT-26895 Fixed
2018-09-17 19:09:40 +03:00
Denis Zharkov
956f8ad5e9
Support deserialized contracts in common code
...
#KT-26687 Fixed
2018-09-17 12:48:42 +03:00
Alexander Udalov
863c0051ce
Do not report deprecation on readBytes with API version < 1.3
...
#KT-26667 Fixed
2018-09-14 14:43:24 +03:00
Alexander Udalov
044419eda5
Minor, refactor DeprecationResolver.getOwnDeprecations
...
Make local function a member, inline another utility function
2018-09-14 14:43:23 +03:00
Alexander Udalov
5dc563a9af
Split deprecationUtil.kt to several files, move to subpackage
...
Also move interface Deprecation to subpackage "deprecation"
2018-09-14 14:43:23 +03:00
Denis Zharkov
24a905293f
Load Java declarations which reference FunctionN as Deprecated.Error
...
#KT-25855 Fixed
2018-09-12 09:49:25 +03:00
Denis Zharkov
7f4f07659c
Minor. Move Deprecation and DeprecationLevel interfaces to core
2018-09-12 09:49:25 +03:00
Denis Zharkov
9cb8a35275
Minor. Pull user-data related things to CallableDescriptor
...
Currently, we assume user data for all non-FunctionDescriptor
declarations is empty
2018-09-12 09:49:25 +03:00
Denis Zharkov
c1cc722ac4
Turn off incorrect switch-optimization for when by enums
...
#KT-24708 Fixed
2018-09-12 09:49:25 +03:00
Denis Zharkov
1cc0c12f87
Add language feature for extended main convention
...
- suspend
- parameterless
#KT-17679 Fixed
#KT-26574 Fixed
2018-09-12 09:49:25 +03:00
Denis Zharkov
38be1f6947
Minor. Parametrize MainFunctionDetector with LanguageVersionSettings
2018-09-12 09:49:25 +03:00
Denis Zharkov
2c920b732c
Support main entry-point without arguments in frontend
...
#KT-26574 In Progress
2018-09-12 09:48:13 +03:00
Denis Zharkov
3cf1c56794
Minor. Get rid of static public parts in MainFunctionDetector
...
In further commits, MainFunctionDetector::isMain will use
getFunctionDescriptor property
2018-09-12 09:48:13 +03:00
Denis Zharkov
272ee252d8
Report warning on "suspend {}"-like calls based on variable
...
#KT-22892 Fixed
2018-09-12 09:48:13 +03:00
Denis Zharkov
b9f141d4aa
Forbid suspend functions annotated with @kotlin.test.Test
...
#KT-26200 Fixed
2018-09-12 09:48:13 +03:00
Mikhail Zarechenskiy
7b70c1a2d9
Allow kotlin.Result only for declarations that are effectively fields
2018-09-11 10:39:25 +03:00
Mikhail Zarechenskiy
862aa8d1aa
Fix exception: don't try to get value of error constant
...
#EA-126623 Fixed
2018-09-11 10:39:19 +03:00
Mikhail Zarechenskiy
26ca411423
Minor: use common constant for kotlin.Result
2018-09-11 10:39:13 +03:00
Mikhail Zarechenskiy
169599abcc
Add flag to allow using kotlin.Result as a return type
...
#KT-26659 Fixed
2018-09-11 10:39:11 +03:00
Mikhail Zarechenskiy
864e21dd1b
Prohibit expressions of Result type as left operands of ?./!!/?:
...
#KT-26659 In Progress
2018-09-11 10:24:50 +03:00
Mikhail Zarechenskiy
b1cd49dd7b
Prohibit using kotlin.Result as a return type in most cases
...
#KT-26659 In Progress
2018-09-11 10:24:48 +03:00
Anton Bannykh
d571d0ad51
JS: prohibit using experimental coroutines from 1.3
2018-09-10 14:18:44 +03:00