Stanislav Erokhin
3a9ecf0bce
Change resolution priority about implicit receivers and synthesized member-like descriptors.
...
Change resolution to consider extensions to implicit receiver before members of another implicit receiver.
Make synthesized member-like extensions resolve right after the members.
#KT-10510 Fixed
#KT-10219 Fixed
2016-01-15 13:11:38 +03:00
Denis Zharkov
be2f857670
Introduce inline-only functions
...
They have private visibility in bytecode
2016-01-15 09:46:30 +03:00
Denis Zharkov
f4613b8db1
Support foreign nullability annotations
...
#KT-10418 Fixed
#KT-10594 Fixed
2016-01-14 19:24:10 +03:00
Denis Zharkov
fd8a718797
Get rid of duplicating annotations FQ names usages
...
E.g. JETBRAINS_NOT_NULL_ANNOTATION were used both in NULLABLE_ANNOTATIONS
and for ANNOTATIONS_COPIED_TO_TYPES
2016-01-14 19:24:10 +03:00
Denis Zharkov
23d2b87a52
Ignore redundant projections for declaration-site variance
2016-01-14 19:20:00 +03:00
Valentin Kipyatkov
5a079defc7
"Rename on import" hides importing of the same symbol by other imports with the original name
2016-01-14 17:05:28 +03:00
Michael Bogdanov
607f32615f
Type uncapturing
2016-01-14 15:32:50 +03:00
Michael Bogdanov
2228cb6a9a
Rollback parameter descriptor propagation to CapturedTypeConstructor
2016-01-14 15:32:50 +03:00
Dmitry Petrov
609ffc10a9
KT-10322, KT-10646, KT-10647:
...
- update diagnostic to (supposedly) more useful
- also report IMPLICIT_CAST_TO_ANY if expected type is DONT_CARE
(effectively "no expected type" for lambda expression).
2016-01-14 10:08:20 +03:00
Dmitry Petrov
f54de08073
KT-10646, KT-10647:
...
Move IMPLICIT_CAST_TO_UNIT_OR_ANY to ControlFlowInformationProvider
(where checks for 'if' and 'when' used as expressions are performed).
2016-01-14 10:08:20 +03:00
Denis Zharkov
b8c79e689b
Make all nested inlined closure classes public
...
#KT-6987 Fixed
2016-01-13 19:41:59 +03:00
Michael Bogdanov
66ab1c484c
StackOverflow fix on type remapping
2016-01-13 16:57:36 +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
833cdb0706
TypeParameterDescriptor propagation to CapturedTypeConstructor
2016-01-12 15:51:54 +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 Jemerov
117a0d8b7b
compiler: cleanup 'public', property access syntax
2016-01-07 17:57:38 +01: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
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
Ilya Gorbunov
80916d5ed7
Cleanup in compiler modules
2015-12-29 18:04:15 +03:00
Ilya Gorbunov
b71b336a69
Fix fq names of moved facade classes in imports and other code occurrences
2015-12-29 18:04:13 +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
Pavel V. Talanov
b38fc7b3c1
Parse local interfaces in expression position
2015-12-29 15:57:00 +03:00
Pavel V. Talanov
4f5f56e4a5
Add and use KtPropertyAccessor#getProperty()
2015-12-29 12:32:12 +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
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
52c3fb03a2
ControlFlowInfo introduced to store variable states, related refactoring
2015-12-26 10:46:30 +03:00
Mikhail Glukhikh
0f3997c6ca
InitState / VariableUseState / VariableControlFlowState moved to a separate file
2015-12-26 10:46:25 +03:00
Mikhail Glukhikh
b805ce06c2
CFG exhaustive when else instruction for KT-8700
2015-12-26 10:46:01 +03:00
Alexander Udalov
697228eae0
Mark enum entry names as name ids for incremental compilation purposes
2015-12-25 20:16:18 +03:00
Alexander Udalov
0685f06200
Drop outdated stuff from metadata annotations
...
Make KotlinLocalClass and KotlinInterfaceDefaultImpls not retained at runtime,
to be maybe deleted in the future
2015-12-25 20:16:18 +03:00
Alexander Udalov
39c10867a0
Drop 'index' JVM binary format extension
...
Compute the JVM parameer index manually instead
2015-12-25 20:16:18 +03:00
Alexander Udalov
dc6a176282
Drop old JVM binary format extensions: static in outer, impl class name
2015-12-25 20:16:18 +03:00
Alexander Udalov
fc74759231
Drop old enum entries from binary format
2015-12-25 20:16:18 +03:00
Alexander Udalov
7592f31596
Serialize built-ins to separate file .kotlin_builtins
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
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
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