Pavel V. Talanov
9bfa90dc0e
Analyze local variable declarations in expression position
...
Fixes exception on invalid code "val c = 1 < val Int.f: Int = 3"
2016-01-12 19:31:16 +03:00
Michael Bogdanov
657b9ff808
Write enclosing method info for transformed objects
2016-01-12 15:51:57 +03:00
Michael Bogdanov
fee6d4f282
Type parameters mapping
...
#KT-10429 Fixed
2016-01-12 15:51:56 +03:00
Michael Bogdanov
0274ce4619
Always generate ACC_SUPER flag for all classes; Fix for KT-10260: java.lang.VerifyError in Android 4.x when Instant Run is used
...
#KT-10260 Fixed
2016-01-11 09:55:56 +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
Dmitry Petrov
74c13906ed
Drop "substitute with upper bounds" mode for calls with mapped arguments
...
(we don't need it since we build constraint system for generic types).
Cleanup tests.
2015-12-30 10:44:01 +03:00
Dmitry Petrov
4b3290dd8c
Check specificity relation for generant types of the constraint system.
...
Otherwise we can't properly chose between 'dynamic' and generic type.
2015-12-30 10:44:00 +03:00
Dmitry Petrov
02daeac41b
Use constraint system for comparing for specificity against a generic signature.
...
Drop "discrimiate generics" mode where it's unneeded.
2015-12-30 10:44:00 +03:00
Michael Bogdanov
91f27ba176
Report error on 'JvmStatic' annotation on const or @JvmField property
...
#KT-10415 Fixed
2015-12-29 17:20:07 +03:00
Michael Bogdanov
ae4ca3b5bb
Report JvmStatic diagnostic on primary constructor properties
2015-12-29 16:45:24 +03:00
Michael Bogdanov
e116cc3206
Private visibility for non-const, non-jvmField class companion property backing field
2015-12-29 16:45:22 +03:00
Michael Bogdanov
85ae0cb78e
Restrict companion properties copying to interface by const
2015-12-29 16:45:22 +03:00
Pavel V. Talanov
b38fc7b3c1
Parse local interfaces in expression position
2015-12-29 15:57:00 +03:00
Pavel V. Talanov
1c4d4f3e36
Create class descriptors for local classes in illegal positions
...
Typecheck code in illegal selector position
Fixes exceptions on "val p = A.class" erroneous code
2015-12-29 15:56:44 +03:00
Alexander Udalov
890c961383
Fix reflection internal error on enum nested classes query
...
#KT-10520 Fixed
2015-12-28 16:40:34 +03:00
Denis Zharkov
722a152a74
Fix supertypes calculation for types with projections
...
Use captured types as replacement for non top-level entries
#KT-7296 Fixed
2015-12-28 11:13:39 +03:00
Denis Zharkov
397d2ca312
Fix captured approximation for case of flexible types
...
#KT-9294 Fixed
2015-12-28 11:13:38 +03:00
Denis Zharkov
9773e98d8a
Refine type from property setter parameter on assignment
...
In most cases these types are equals, the only known exception is
var-property contained in projected type member scope (see test data)
2015-12-28 11:13:37 +03:00
Denis Zharkov
e2c02f825f
Refine member scope for types with projections
...
Instead of erasing descriptors with conflicting substitution,
use invariant CapturedType(<projection>) as replacement for type parameter
within default member scope.
After substitution leave such types 'as is' everywhere except return types,
use common approximation for them.
#KT-9294 In Progress
#KT-5411 Fixed
#KT-8647 Fixed
#KT-9462 Fixed
#KT-9893 Fixed
#KT-7581 Fixed
#KT-7296 In Progress
2015-12-28 11:13:37 +03:00
Denis Zharkov
365ff593f3
Extract and normalize member scope calculation
...
Basically it's wrong to use original types' member scope
as a worker for SubstitutionScope.
Member scope should always be determined by type constructor's default one
and substitution/arguments
#KT-10448 Fixed
2015-12-28 07:44:56 +03:00
Denis Zharkov
58caff3411
Minor. Add tests checking not-null assertions
...
More precisely these tests check cases when expected type
was somehow obtained from captured type (in member scope with projections)
2015-12-28 07:44:56 +03:00
Denis Zharkov
3fd35636ad
Fix type parameter list for local classes
...
Add captured parameters from enclosing functions
#KT-9584 Fixed
2015-12-28 07:44:53 +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
Mikhail Glukhikh
011a9f23b9
Implicit exhaustive when check for definite variable initialization (KT-8700)
2015-12-26 10:46:35 +03:00
Mikhail Glukhikh
b93894953d
Exhaustive whens without else and 'Nothing' as the result are considered 'implicit exhaustive'
2015-12-26 10:46:11 +03:00
Mikhail Glukhikh
b805ce06c2
CFG exhaustive when else instruction for KT-8700
2015-12-26 10:46:01 +03:00
Alexander Udalov
75f046fa81
Drop Throwable#printStackTrace, make it a JVM-specific extension
2015-12-25 20:16:18 +03:00
Stanislav Erokhin
3d44471659
KT-10483 Missing smart cast on variable in variable as function call
...
#KT-10483 Fixed
2015-12-25 20:13:08 +03:00
Michael Bogdanov
f870e365fa
Removed accessors for const properties
2015-12-25 11:28:10 +03:00
Michael Bogdanov
b4db23a7b3
Removed 'INSTANCE' field from companions
2015-12-24 13:59:45 +03:00
Michael Bogdanov
2e73559f33
Removed 'INSTANCE$' field generation
2015-12-24 13:59:44 +03:00
Michael Bogdanov
aeb6486473
Deprecated 'INSTANCE$' replaced with 'INSTANCE'
2015-12-24 13:59:43 +03:00
Denis Zharkov
80fd9e3cbb
Fix wrong contract assumption
...
Currently SamAdapterOverridabilityCondition can be called
even for incompatible descriptors
#KT-10486 Fixed
2015-12-24 12:25:31 +03:00
Ilya Gorbunov
f9ba35af64
Place Char constants into builtin Char companion object.
2015-12-24 06:18:51 +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
99a32b93fb
Implemented missed checks for local functions #KT-10449 Fixed
...
Relevant code/test fixes
2015-12-23 18:22:32 +03:00
Mikhail Glukhikh
15746cbf56
Implicit callable type check refactoring, additional check for property with explicit Nothing type
2015-12-23 18:04:25 +03:00
Mikhail Glukhikh
6b8b39a7bd
Intersection types are no more allowed in signatures #KT-10244 Fixed
2015-12-23 18:04:21 +03:00
Mikhail Glukhikh
f56dc722d9
Lateinit property backing field now inherits visibility from the property setter
2015-12-23 18:02:20 +03:00
Mikhail Glukhikh
ebda21c68a
Codegen tests for lateinit var with private setter
2015-12-23 18:02:07 +03:00
Mikhail Glukhikh
60521e20ff
SETTER_VISIBILITY_DIFFERS_FROM_LATEINIT_VISIBILITY diagnostic removed
2015-12-23 17:48:28 +03:00
Dmitry Petrov
00db7d150b
Fix KT-10472: compare all overloads including varargs in a single pass.
2015-12-23 10:05:40 +03:00
Dmitry Petrov
142e85be04
Prohibit functions (and constructors) with multiple vararg parameters.
2015-12-22 10:40:41 +03:00
Alexander Udalov
7449ad2763
Rename Extension annotation to ExtensionFunctionType
...
The old one is kept temporarily and will be removed later
2015-12-21 20:33:32 +03:00
Andrey Breslav
a7e7d53e2b
Reserve "async* {}", extend the quick-fix
2015-12-21 07:15:37 +03:00
Andrey Breslav
45074841a4
Minor. Additional test for "async {}"
2015-12-21 07:15:37 +03:00
Stanislav Erokhin
1574dc78df
Synthetic extensions wins against top-level extension.
2015-12-18 22:49:25 +03:00
Sergey Mashkov
e25d31618c
Fix tests
2015-12-18 22:16:04 +03:00
Andrey Breslav
6155d836a5
'async' reserved in front of function literals
2015-12-18 21:20:54 +03:00
Andrey Breslav
75ab0dd509
'sealed' reserved in front of when
2015-12-18 21:20:54 +03:00