Denis Zharkov
871fe7680b
Load special override as HIDDEN in case of signature clash
...
#KT-10151 Fixed
2015-12-11 22:41:03 +03:00
Denis Zharkov
303c756302
Refine generic signature for fields
...
- For vals use the same semantics as for return types
- For vars use the same semantics as for value parameters
2015-12-01 08:21:01 +03:00
Denis Zharkov
406e31f54a
Change default rules for declaration-site wildcards
...
Mostly this commit is about skipping wildcards that are redundant in some sense.
The motivation is that they looks `long` in Java code.
There are basically two important parts: return types and value parameters.
1. For return types default behaviour is skipping all declaration-site wildcards.
The intuition behind this rule is simple: return types are basically used in subtype position
(as an argument for another call), and here everything works well in case of 'out'-variance.
For example we have 'Out<Out<T>>>' as subtype both for 'Out<Out<T>>>' and 'Out<? extends Out<? extends T>>>',
so values of such type is more flexible in contrast to `Out<? extends Out<? extends T>>>` that could be used only
for the second case.
But we have choosen to treat `in`-variance in a different way: argument itself
should be rendered without wildcard while nested arguments are rendered by the rules
described further (see second part).
For example: 'In<Out<OpenClass>>' will have generic signature 'In<Out<? extends OpenClass>>'.
If we omit all wildcards here, then value of type 'In<Out<OpenClass>>'
will be impossible to use as argument for function expecting 'In<? super Out<? extends Derived>>'
where Derived <: OpenClass (you can check it manually :]).
And this exception should not be very inconvinient because in-variance is rather rare.
2. For value parameters we decided to skip wildcards if it doesn't make obtained signature weaker
in a sense of set of acceptable arguments.
More precisely:
a. We write wildcard for 'Out<T>' iff T ``can have subtypes ignoring nullability''
b. We write wildcard for 'In<T>' iff T is not equal to it's class upper bound (ignoring nullability again)
Definition of ``can have subtypes ignoring nullability'' is straightforward and you can see it in commit.
#KT-9801 Fixed
#KT-9890 Fixed
2015-12-01 08:20:59 +03:00
Yan Zhulanow
9d1af5a17e
Fix tests: "infix modifier required" and "operator modifier required" errors
2015-11-27 15:51:11 +03:00
Yan Zhulanow
a3ff3ffc45
Fix tests: "Placing function type parameters after the function name" error
2015-11-27 15:51:11 +03:00
Dmitry Petrov
db42941586
Allow annotation constructor calls
...
in default parameter value expressions of anonymous classes
(if it is not a compile-time constant, it will be reported separately).
#KT-10136 Fixed
2015-11-25 18:06:08 +03:00
Dmitry Petrov
931463af0d
- Fix code generation for inlined String::plus
...
#KT-10131 Fixed.
- Make extra factory methods in IntrinsicMethod protected.
This ensures that any of them can be properly overridden.
2015-11-24 12:09:34 +03:00
Dmitry Petrov
048e96ef6a
Fix safe call code generation for ranges.
2015-11-23 10:34:08 +03:00
Mikhail Glukhikh
f81a5c06ea
Protected in allowed in companion objects but forbidden in other objects, relevant test fixes
2015-11-20 16:32:59 +03:00
Ilya Gorbunov
3639afafce
Deprecated with ERROR preconditions with eager message.
2015-11-11 19:00:03 +03:00
Ilya Gorbunov
07c570f35d
Replace getStackTrace usages in j2k and testData.
2015-11-11 18:59:56 +03:00
Ilya Gorbunov
6bac3e1986
Drop Ranges, Progressions, ProgressionIterators for Double and Float.
...
Undeprecate generic Comparable.rangeTo, but return private implementation instead.
Undeprecate contains and coerceIn for generic ranges.
2015-11-11 03:53:47 +03:00
Ilya Gorbunov
4d2f9b82da
reversed() behavior changed for progressions. Stepped progression behavior changes: 'end' property is now deprecated, use 'last' instead.
2015-11-11 03:53:45 +03:00
Ilya Gorbunov
25da037868
Update range iteration tests and regenerate test data.
2015-11-11 03:53:37 +03:00
Ilya Gorbunov
5e6d16103e
Remove deprecated ranges from tests and take into account that Byte and Short rangeTo now returns IntRange.
2015-11-11 03:53:31 +03:00
Alexander Udalov
1576160390
Improve implementation of callable reference superclasses
...
Previously to use reflection on them, you had to wrap an already created object
with a "Reflection.function" or "Reflection.propertyN" call, which the JVM
back-end was doing. This was not optimal in several senses and current solution
fixes that
2015-11-09 22:24:40 +03:00
Alexander Udalov
1c889c4e67
Support equals, hashCode, toString for ::-references without reflection
2015-11-09 22:24:39 +03:00
Michael Bogdanov
7147c84396
Fix for KT-9897: Cannot pop operand off an empty stack" with -= on ArrayList element
...
#KT-9897 Fixed
2015-11-09 16:17:24 +03:00
Ilya Gorbunov
850c1518c8
Fix Delegates.lazy usages in testData
2015-11-06 01:12:09 +03:00
Ilya Gorbunov
62b532ec66
Replace deprecated join with joinToString in testData
2015-11-06 01:12:02 +03:00
Michael Bogdanov
559b85caa8
Test for obsolete KT-6382: Incorrect bridge method calls are generated for member extension functions with default parameters
...
#KT-6382 Obsolete
2015-11-03 15:40:16 +03:00
Dmitry Jemerov
736b496f6a
drop deprecated @platformName and @platformStatic annotations
2015-11-02 17:00:44 +01:00
Michael Bogdanov
7ee42ab18d
Fix for KT-9828: DX error on MutableMap.MutableEntry<String, Int> deconstruction: attempt to set or access a value of type java.lang.Object using a local variable of type int.
...
#KT-9828 Fixed
2015-10-30 16:47:21 +03:00
Alexander Udalov
996c14d071
Use representative upper bound in JetTypeMapper instead of just the first
2015-10-28 19:11:59 +03:00
Dmitry Petrov
21d927b7a4
Test for KT-9712 (fixed along with KT-9717)
...
#KT-9712 Fixed
2015-10-28 10:39:03 +03:00
Alexander Udalov
395c0f12b1
Fix confusing behavior in test when assertion fails
2015-10-27 23:31:29 +03:00
Ilya Gorbunov
e2c9267305
Fix compiler tests with incompatible types in assertEquals arguments.
2015-10-27 21:48:29 +03:00
Dmitry Petrov
882827bf04
KT-9717, KT-9603:
...
pass getter/setter-related flags to AccessorForPropertyDescriptor
2015-10-27 12:02:27 +03:00
Alexander Udalov
b8b98b4eaa
Support get/set on KProperty objects for delegated properties
2015-10-26 21:02:35 +03:00
Alexey Tsvetkov
294559a94f
Overridable val should not be treated as constant
...
#KT-9443 fixed
2015-10-26 19:23:09 +03:00
Dmitry Petrov
ccad435850
KT-9644: override default behavior for non-local return in FixStackAnalyzer
2015-10-26 15:56:57 +03:00
Alexander Udalov
1517a099d0
Search for JvmName also among use-site targeted annotations
...
#KT-9699 Fixed
2015-10-23 19:03:50 +03:00
Alexander Udalov
ae4c7b5a61
Minor, rename codegen tests on platformName and platformStatic
2015-10-23 19:03:49 +03:00
Michael Bogdanov
55d2300860
Fix for KT-6722
...
#KT-6722 Fixed
2015-10-21 17:12:17 +03:00
Michael Bogdanov
c8c3e88c82
Make top-level property backing field private in bytecode
2015-10-19 19:09:30 +03:00
Dmitry Petrov
3502c393fc
Drop package facades: JVM BE tests passed.
2015-10-19 16:03:16 +03:00
Mikhail Glukhikh
a4af6a3076
data deprecations (empty constructors, non val/var arguments, vararg, superclasses) are now errors, relevant tests fixed
2015-10-19 15:24:28 +03:00
Svetlana Isakova
514a1dea57
Changed test for 'LowPriorityInOverloadResolution' annotation
2015-10-19 14:15:06 +03:00
Yan Zhulanow
e14c9645dc
Error on 'if' without an 'else' branch when used as an expression
2015-10-19 03:56:15 +03:00
Zalim Bashorov
de5dc61820
Make NON_CONST_VAL_USED_IN_CONSTANT_EXPRESSION error
2015-10-18 22:49:08 +03:00
Michael Bogdanov
3b02498ca8
Tests for private members and accessors for them
2015-10-18 17:53:28 +03:00
Michael Bogdanov
3452fc8d02
Don't initialize const properties in constructor
...
#KT-9532 Fixed
2015-10-17 15:31:57 +03:00
Yan Zhulanow
9ae3b0fa9c
Drop loading Java annotation methods as functions
2015-10-16 22:13:34 +03:00
Svetlana Isakova
ded62686a0
Added 'LowPriorityInOverloadResolution' annotation
2015-10-16 21:58:46 +03:00
Zalim Bashorov
9acf3e40de
Generic type with Nothing in arguments compiles to raw type
2015-10-16 15:30:41 +03:00
Dmitry Petrov
57869d85e8
Spread should always copy arrays.
...
Introduce a special (package private) utility class ArraysUtilJVM
to fix Array<T>.asList() issues.
2015-10-15 09:16:21 +03:00
Alexander Udalov
97946feb9a
Minor, rename and adapt test
2015-10-15 00:51:37 +03:00
Alexander Udalov
ced1edcf98
Prohibit callable references to object members
...
To be able to make them more useful in the future, i.e. bound to the object
instance
2015-10-14 20:45:56 +03:00
Alexander Udalov
63dfe13c43
Add some tests on KProperty usage from delegate methods
2015-10-14 20:45:55 +03:00
Alexander Udalov
51bf68ce27
Update compiler tests to use KProperty instead of PropertyMetadata
2015-10-14 20:45:54 +03:00