Mikhail Zarechenskiy
7679e49b25
Do not generate properties for script parameters if there is template definition
2016-08-04 15:19:15 +03:00
Nikolay Krasko
a9ee10a8b7
Ignore intervals that has no mapping for origin line (KT-12896)
2016-08-02 01:05:08 +03:00
Nikolay Krasko
64e034959f
Refactoring: introduce constants with strata names and reuse them in debugger
2016-08-02 01:02:07 +03:00
Stanislav Erokhin
19e4dbc37c
Refactoring. Move functionTypeResolveUtils.kt to resolution module.
2016-07-29 17:53:11 +03:00
Pavel V. Talanov
0b4c6bd889
Drop PsiCodegenPredictor
2016-07-28 18:00:45 +03:00
Dmitry Petrov
a08e70879f
KT-13161 java static methods call not working for typealias
...
Introduce special qualifier for type aliases with member scope
containing static class members only.
2016-07-28 17:38:36 +03:00
Denis Zharkov
915e36cb02
Add Map.getOrDefault method as PlatformDependent declaration with refined signature
...
- First parameter should have type of K instead of Any
- Special bridge should return second parameter if a key has wrong type
- Special bridge may throw an exception if defaultValue has wrong type
#KT-13209 Fixed
2016-07-27 18:46:13 +03:00
Dmitry Petrov
26c8bc87fd
KT-13241 Indices optimization leads to VerifyError with smart cast receiver
...
Use expected receiver type from the corresponding extension function.
2016-07-27 13:21:22 +03:00
Michael Bogdanov
9b9abb2e10
Fix for KT-13182: Regression: compiler internal error at inline
...
#KT-13182 Fixed
2016-07-26 16:16:37 +03:00
Michael Bogdanov
99cdc41ab6
Fix for KT-13133: Incorrect InnerClasses attribute value for anonymous object copied from an inline function
...
#KT-13133 Fixed
2016-07-26 16:16:36 +03:00
Alexander Udalov
91e486d020
Fix KCallable#name intrinsic for bound references
...
Do not skip generation of the left-hand side because it may produce side
effects
#KT-12995 Fixed
2016-07-26 13:48:20 +03:00
Alexander Udalov
70e01fac18
Fix class literals of objects in super constructor calls
...
In an expression such as "Obj::class" where Obj is an object, it's fine to
consider Obj either an expression or a type and generate either
Obj.INSTANCE.getClass() or Obj.class correspondingly. However,
the former fails in the object's super constructor call because the INSTANCE
field is not yet initialized. Thus, we force generation of Obj.class in case
when Obj is an object.
Note that this has been reproduced in our project, see
KotlinMetadataVersionIndex
2016-07-26 13:47:34 +03:00
Alexander Udalov
495ed13fce
Implement codegen for bound class reference expressions
...
- Inline the usage of ExpressionCodegen#generateClassLiteralReference into
ClosureCodegen, simplify
- Support DoubleColonLHS.Expression in generateClassLiteralReference
- Substantially simplify KClass.java intrinsic by reusing
generateClassLiteralReference
#KT-13075 Fixed
#KT-12995 In Progress
2016-07-26 13:47:33 +03:00
Alexander Udalov
28dc5d788c
Minor, make JavaClassProperty intrinsic a singleton
2016-07-26 13:47:32 +03:00
Alexander Udalov
a6faab834d
Move OverrideResolver#generateOverridesInAClass to CollectionStubMethodGenerator
...
Also simplify substantially
2016-07-25 15:55:31 +03:00
Denis Zharkov
becb1f1f95
Make stack values for assignment-like operations lazy
...
As well as for other kinds of expressions
Within attached test they were generated twice in case of last expression of coroutine block,
because coroutine related codegen part is built upon assumption that all expressions should be generated lazily
Also add a test about unary postfix increment/decrement
#KT-13156 Fixed
2016-07-25 13:56:43 +03:00
Michael Bogdanov
55382ba848
Removed obsolete code in 'lookupConstructorExpressionsInClosureIfPresent' method
2016-07-21 19:10:42 +03:00
Michael Bogdanov
5dca4dbc67
Fix for KT-11833: Error generating constructors of class null with kind IMPLEMENTATION on anonymous object inheriting from nested class of super class
...
#KT-11833 Fixed
2016-07-21 19:10:42 +03:00
Stanislav Erokhin
8193032ffb
Refactoring. Separate KotlinTypeChecker to interface & Impl class.
2016-07-21 16:07:14 +03:00
Michael Bogdanov
6da97027cc
'getSuperCallLabelTarget' refactoring
2016-07-20 16:50:50 +03:00
Michael Bogdanov
6f41e3b462
Fix for KT-11634: UOE in ConstructorContext.getOuterExpression for super call in delegation
...
#KT-11634 Fixed
2016-07-20 16:50:49 +03:00
Alexander Udalov
8f33830f29
Suppress UNCHECKED_CAST instead of CAST_NEVER_SUCCEEDS in several places
...
This is related to KT-6611 being fixed recently. Note that not all cases of
incorrect "cast never succeeds" were fixed
2016-07-13 13:42:42 +03:00
Denis Zharkov
3845ea863c
Do not generate DefaultImpl method for MutableMap.remove(K;V)Z
...
#KT-13069 Fixed
2016-07-12 16:27:48 +03:00
Denis Zharkov
2d42ba23b3
Minor. Replace TraitImpl -> DefaultImpls, Trait -> Interface
...
There are still a lot of trait word entries in the source code,
only some of them got replaced here
2016-07-12 16:27:48 +03:00
Nikolay Krasko
57ef3f5656
Generate linenumber for goto instruction in while (KT-13059)
...
Otherwise linenumber for previous instruction will be used in debugger. That can lead to error stepping
because it might be line that isn't reachable on current iteration.
#KT-13059 Fixed
2016-07-12 15:19:02 +03:00
Nikolay Krasko
ce74d6c7df
Refactoring: invert if
2016-07-12 15:19:00 +03:00
Denis Zharkov
18c2d3070d
Refine variables liveness analysis
...
Do not treat var as alive just because current instruction belongs to an item range
in local variables table, but the item has different sort of type
As liveness analysis is mostly used in coroutines spilling,
not applying this change may lead that to problems on Android (see tests)
2016-07-12 12:52:03 +03:00
Michael Bogdanov
23a0e19620
Fix for KT-13040: Invalid bytecode generated for extension lambda invocation with safe call
...
#KT-13040 Fixed
2016-07-09 14:55:49 +03:00
Michael Bogdanov
486aa5675f
Fix for KT-12908: Variable initialization in loop causes VerifyError bad local variable type
...
#KT-12908 Fixed
2016-07-09 07:45:57 +03:00
Dmitry Jemerov
00d651711a
fix incompatibility with ASM 6: don't call getReturnType() on a type which is not a method type (IDEA-158090)
2016-07-08 17:17:45 +02:00
Dmitry Petrov
b0edec8449
KT-13023 Char operations throw ClassCastException for boxed Chars
...
Char is not a Number, so we can't use the same coercion strategy for Char members,
since it doesn't work for boxed Chars.
2016-07-08 10:26:04 +03:00
Dmitry Petrov
2ccb0caa6c
Minor: fix NPE in CallableMethod.toString for methods of primitive types
2016-07-08 10:26:04 +03:00
Alexander Udalov
720c29e8f4
Minor, fix NonExistentClass name and format
2016-07-07 13:56:01 +03:00
Denis Zharkov
3a59e1d222
Support suspending extension functions
2016-07-06 15:25:19 +03:00
Dmitry Petrov
3445fe0d30
KT-12985 Do not create range instances for 'for' loop in CharSequence.indices
2016-07-06 12:50:41 +03:00
Dmitry Petrov
3dc23a0e02
KT-12983 java.lang.VerifyError: Bad type on operand stack in arraylength
...
Use proper receiver value type.
2016-07-06 09:59:00 +03:00
Alexander Udalov
3b349e9be0
Fix reflection on reference to generic property
...
See a93484b457 for the similar fix to function
references
#KT-12967 Fixed
2016-07-05 18:18:43 +03:00
Alexander Udalov
a533f8597d
Fix debug names for some slices
...
Also move RUNTIME_ASSERTION_INFO and LOAD_FROM_JAVA_SIGNATURE_ERRORS to a
single class for simplicity
2016-07-05 18:18:26 +03:00
Denis Zharkov
888db4b3b5
Make 'controller' field package-private
...
To make it accessible from nested lambdas
#KT-12974 Fixed
2016-07-05 15:36:06 +03:00
Denis Zharkov
d657bc8110
Treat any coroutine as it has non-const closure
...
Because it's always does capture controller
2016-07-05 15:36:06 +03:00
Denis Zharkov
df4bf61378
Refine types returned by OptimizationBasicInterpreter.newValue
...
#KT-12958 Fixed
2016-07-05 15:36:06 +03:00
Denis Zharkov
17a41ecc79
Revert 1431e2a0: Fix variables spilling for coroutines
...
Tracking variable type in table is unnecessary after variables liveness introduction:
values having types conflicting with table should be dead
2016-07-05 15:36:06 +03:00
Denis Zharkov
62e69af53c
Report declaration that was being analyzed when internal error happened
...
#KT-12188 Fixed
2016-07-04 18:16:06 +03:00
Denis Zharkov
adff666b0e
Introduce additional overridability rule
...
It works only for Java methods and it's purpose is Java overridability rules emulation,
namely distinction of primitive types and their wrappers.
For example `void foo(Integer x)` should not be an override for `void foo(int x)`
#KT-11440 Fixed
#KT-11389 Fixed
2016-07-04 15:44:00 +03:00
Denis Zharkov
6284598eff
Minor. Fix comment
2016-07-04 15:44:00 +03:00
Alexander Udalov
24682bf1ec
Fix AssertionError on property generation in multi-file classes
...
See 4a533168d9 for the original change which
introduced the problem
Note that the added test case _was not failing_ before the change. It's added
because there were no tests on multi-file class behavior in light classes mode
at all. The actual repro for the problem is difficult to make a test from
#KT-12755 Fixed
2016-07-04 15:42:35 +03:00
Dmitry Petrov
bf4f26318e
KT-6916: do not create Progression instances in for-in-downTo loops
2016-07-04 13:38:37 +03:00
Dmitry Petrov
e187f799d9
Minor: extract optimized loop codegen creation logic for optimized 'for' cases.
...
There will be some more of those, and they all require some ad hock processing.
2016-07-04 13:38:36 +03:00
Denis Zharkov
1c3db309e5
Support repeated 'invoke' calls on coroutines defined within inline lambdas
...
#KT-12782 Fixed
2016-06-30 20:22:39 +03:00
Denis Zharkov
ae46c726fc
Add try/catch block around method transformations
2016-06-30 20:22:39 +03:00