Denis Zharkov
4c88e2a0bc
Use original descriptor when mapping fake override
...
Otherwise wrong CONFLICTING_INHERITED_JVM_DECLARATIONS were reported
#KT-10691 Fixed
2016-02-25 11:10:48 +03:00
Michael Bogdanov
582b1c5e66
Fix for KT-11163: Incorrect codegen in case of custom compareTo on primitives
...
#KT-11163 Fixed
2016-02-25 10:16:09 +03:00
Alexey Andreev
a4db14eff5
[KT-4124] Add tests for qualified labeled super access to functions and properties
2016-02-20 15:19:31 +03:00
Alexey Andreev
9238afc439
[KT-4124] Fix some tests from common testData
2016-02-20 15:19:29 +03:00
Alexey Andreev
c705fafc95
[KT-4124] Add support for super<T>@Outer.functionName() case
2016-02-20 15:19:25 +03:00
Alexey Andreev
20b3361edc
[KT-4124] Fix test compatibility between JS and Java backed for several tests
2016-02-20 15:19:24 +03:00
Alexander Udalov
1b8f934b54
Delete deprecated enum 'values' property
2016-02-19 22:28:44 +03:00
Anton Sukhonosenko
0073257841
Fix for KT-10313: ClassCastException with Generics
...
#KT-10313 Fixed
2016-02-12 10:53:28 +03:00
Denis Zharkov
12552d2fc1
Refine special bridges generation
...
#KT-10958 Fixed
2016-02-10 20:18:46 +03:00
Stanislav Erokhin
434bd0707d
Correcting rewrite type info after compete call.
...
#KT-10934 Fixed
#KT-10896 Fixed
2016-02-08 20:49:31 +03:00
Ilya Gorbunov
5361f6e941
Make Throwable properties message and cause open.
...
#KT-5587 Fixed
2016-02-08 18:10:46 +03:00
Denis Zharkov
c879f83037
Fix primitive types mapping
...
Use boxed version if type was enhaced to not-nullable
2016-02-08 16:40:47 +03:00
Michael Bogdanov
5f38c1d571
Fix for KT-10729: Accessing private const field in companion object from a function in the same companion generates run-time error
2016-02-01 18:42:19 +03:00
Dmitry Petrov
b3f390abe5
Fix KT-10775 Empty when causes compilation exception.
...
Expression type for an empty 'when' is 'kotlin.Unit'.
2016-01-29 18:50:48 +03:00
Michael Bogdanov
e1fa6491c1
Test for obsolete KT-10044: "Don't know how to generate outer expression for class" with lambda in init block
...
#KT-10044 Obsolete
2016-01-29 12:42:37 +03:00
Mikhail Glukhikh
ed8ccdc15a
Take into account data flow info changes for special call (if/when/elvis/!!) arguments #KT-10824 Fixed
...
Smart casts on complex expressions look as no more possible
2016-01-28 19:30:20 +03:00
Yan Zhulanow
3fa506fd45
"Inapplicable operator modifier" and "Inapplicable infix modifier" are now errors
2016-01-26 17:21:44 +03:00
Stanislav Erokhin
210c9ab3db
Minor. Added regression tests for: KT-3927, KT-9522, KT-10036, KT-7440, KT-9682, KT-9808, KT-9517, KT-9810, KT-9345.
2016-01-25 19:13:32 +03:00
Michael Bogdanov
874560df9d
Fix for KT-10715: Verify error on incrementing backing field from accessor
2016-01-25 16:56:57 +03:00
Mikhail Glukhikh
3106a8508a
Front-end and back-end test for KT-7801
2016-01-22 16:37:00 +03:00
Mikhail Glukhikh
7ac55cefcb
Extra test with smart cast to 'T'
2016-01-22 16:36:57 +03:00
Ilya Gorbunov
4d5ec9be3f
Drop identityEquals from builtins, compiler and tests.
2016-01-22 05:54:38 +03:00
Ilya Gorbunov
b97e436a50
Fix deprecated Range and Progression usages in testData
2016-01-22 05:54:38 +03:00
Ilya Gorbunov
f4822cd757
Fix testData in compiler: add collections and ranges package to fq-names.
2016-01-22 05:54:38 +03:00
Denis Zharkov
ba506170e9
Use 'mapToCallableMethod' for delegateTo signature calculation
...
#KT-9707 Fixed
2016-01-21 11:24:23 +03:00
Denis Zharkov
ede4b61980
Add tests for obsolete issue
...
#KT-7412 Obsolete
2016-01-20 14:27:53 +03:00
Mikhail Glukhikh
9360bd49a6
Data flow info: correct disjunction of a type with Nothing: Type U Nothing = Type #KT-9578 Fixed
2016-01-19 16:01:10 +03:00
Dmitry Petrov
b736880787
KT-6646, KT-10482:
...
when a method (or a property getter) returns Nothing, emit
ACONST_NULL
ATHROW
after a call so that class files verifier knows that this is an exit point in a method.
Note that if an inline method returning Nothing throws an exception explicitly
(or via a chain of inline methods), this code will be deleted by DCE.
2015-12-31 11:07:56 +03:00
Mikhail Glukhikh
7d6ccc40c2
Implicit exhaustive whens now have exception in else branch #KT-8700 Fixed
2015-12-26 10:46:39 +03:00
Alexander Udalov
75f046fa81
Drop Throwable#printStackTrace, make it a JVM-specific extension
2015-12-25 20:16:18 +03:00
Ilya Gorbunov
de11ed4fc6
Primitive Companion objects do not longer implement IntegerConstants and FloatingPointConstants. All declarations moved inside companions.
...
IntegerConstants and FloatingPointConstants are dropped.
#KT-8897 Fixed
2015-12-24 06:17:03 +03:00
Mikhail Glukhikh
ebda21c68a
Codegen tests for lateinit var with private setter
2015-12-23 18:02:07 +03:00
Michael Bogdanov
ca9e8fc5a7
Fix for KT-5910: Can't call Throwable() in Kotlin
...
#KT-5910 Fixed
2015-12-17 14:09:15 +03:00
Mikhail Glukhikh
f25f0db10e
Fixed long / double / float value merge in OptimizationBasicInterpreter #KT-7401 Fixed
2015-12-16 17:45:38 +03:00
Denis Zharkov
b4bb92d136
Fix overload resolution ambiguity for types intersection
...
There are two different forms of types intestion:
1. Type parameters with multiple bounds
2. Smart casts
The problem was that when member scope of type intersection contained
effective duplicates and that lead to overload resolution ambiguity in
strange cases like `x.hashCode()`
For first type we do effectively the same thing as when building member
scope for class extending several interfaces: group all descriptors by
both-way-overridability relation and then choose most-specific in each
group.
For smart casts we do basically the same thing but with special
treatments:
1. From all descriptors that _equal_ to most specific we choose
the one that works without smartcast if possible (i.e. we choose first from candidates list)
2. If smart-cast value seems to be unstable we use only member scope
of receiver type + all descriptors from smart cast possible types
that has incompatible signature. If we'd include all of them and
choose one as more specific, and it would lead to false
SMART_CAST_IMPOSIBLE (see test unstableSmartCast.kt)
#KT-3996 Fixed
#KT-10315 Fixed
2015-12-15 16:18:31 +03:00
Michael Bogdanov
7c7786f7d0
Generate private methods in TraitImpl as private, don't generate delegation to private trait methods
2015-12-12 11:41:36 +03:00
Denis Zharkov
871fe7680b
Load special override as HIDDEN in case of signature clash
...
#KT-10151 Fixed
2015-12-11 22:41:03 +03:00
Alexander Udalov
239502368a
Update test data for tower resolution algorithm
...
- locals win
- unary calls to plus/minus are not supported in favor of unaryPlus/unaryMinus
- unqualified nested classes are temporarily reported as unresolved
- function without receiver win against extension function
- explicit import win against star import
2015-12-11 17:01:02 +03:00
Mikhail Glukhikh
745a3aeeac
Accurate representation of smart casts on complex expressions
2015-12-11 15:17:25 +03:00
Mikhail Glukhikh
c8b50eec1e
Enum.values: deprecation (warning) --> deprecation (error)
2015-12-11 11:11:42 +03:00
Dmitry Petrov
135c30323b
KT-1934 Check inherited signatures for compatibility
...
Overridden signatures should have compatible return types
(equal types for 'var').
Only relevant overrides should be taken into account.
Refactor inherited signatures check,
introduce a strategy interface for problem reporting.
2015-12-09 17:43:47 +03:00
Alexander Udalov
d3c17ec337
Report error when type parameter has a type parameter bound and any other bound
...
To prevent issues with erasure on JVM: it's unclear what such type parameter
should be erased to
2015-12-07 15:47:47 +03:00
Alexander Udalov
21e64e02bd
Report error on more than one class bound for type parameters
...
Such code may behave unexpectedly when compiled to JVM
2015-12-07 15:47:47 +03:00
Mikhail Glukhikh
5729855e4f
Type parameter as result type: more precise expected type definition #KT-5385 Fixed
...
Tests for KT-5385 KT-10223 KT-7800 KT-7817 + something related
2015-12-04 19:00:24 +03:00
Dmitry Petrov
76931affc6
KT-10139:
...
Non-exhaustive 'when' without 'else' used in expression is an error
regardless of expected type: it can't be an expression, even of type Unit.
2015-12-01 10:36:40 +03:00
Mikhail Glukhikh
ea4f167091
Calls to non-@JvmStatic protected members of companion objects from subclasses are now errors (unsupported yet)
2015-11-27 15:58:38 +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
Mikhail Glukhikh
a53ad098d6
Codegen test for smart cast to Nothing?
2015-11-25 18:26:25 +03:00
Mikhail Glukhikh
dc60c62781
Enum.values is now deprecated but Enum.values() is no more deprecated
2015-11-23 17:29:36 +03:00