Michael Bogdanov
225e90bbdf
Removed redundant cache, small rename refactoring after removing
2016-04-20 17:07:08 +03:00
Michael Bogdanov
286da1fc5f
Properly calculate maxUsedValue
2016-04-20 17:07:07 +03:00
Michael Bogdanov
ff820bddc0
New source mapping
2016-04-20 17:07:06 +03:00
Dmitry Petrov
e441f0509f
KT-11943 Do not use intrinsic 'java' property if receiver type is not acceptable
2016-04-19 10:31:30 +03:00
Natalia Ukhorskaya
7a5ab93f9e
Debugger: write line number for catch clause declaration
2016-04-15 15:58:07 +03:00
Alexander Udalov
a34aaa5955
Move package part-related code from LazyJavaPackageScope to LazyJavaPackageFragment
2016-04-14 21:08:36 +03:00
Dmitry Petrov
583733be8d
KT-11645 properly handle private property getter name mangling in reflection
2016-04-14 09:31:29 +03:00
Dmitry Petrov
511a7e0072
KT-11645 generate backing field for 'private const val' in part implementation class
2016-04-14 09:31:29 +03:00
Dmitry Petrov
82946437d8
EA-81358: use volatile store / volatile load to guarantee publication of deferred clinit results
2016-04-13 16:19:10 +03:00
Michael Bogdanov
be999ca4cb
Write proper start label for parameters of inline function default implementation
2016-04-12 15:31:49 +03:00
Michael Bogdanov
c52c0e2c2d
Write proper start label for inlined constructor parameters (start label was shifted by additional captured parameters injection)
2016-04-12 15:23:14 +03:00
Dmitry Petrov
aca7050656
KT-11499 Normalize stacks on return from an inline function when the function is inlined at call site.
2016-04-08 14:52:55 +03:00
Michael Bogdanov
a6044c81ff
Write proper start label for loop parameter
2016-04-08 14:32:51 +03:00
Dmitry Petrov
f1b061d662
Optimize coercion to Unit.
...
POP operations are backward-propagated.
Operation can't be transformed if its result is moved within stack
(by DUP, DUP_X1, DUP_X2, DUP2, DUP2_X1, DUP2_X2, or SWAP).
Unnecessary operations are replaced with NOPs (for debugger).
Unnecessary NOPs are removed.
KT-9922 Suboptimal generation for simple safe call with unused return value
KT-11116 Optimize methods returning Unit
2016-04-07 11:40:58 +03:00
Stanislav Erokhin
187c0d4dd0
Refactoring. Change Key for TAIL_RECURSION_CALL from ResolvedCall to Call.
2016-04-06 13:55:36 +03:00
Stanislav Erokhin
bf08341ee4
Refactoring. Change type of ResolvedCall#extensionReceiver from Receiver to ReceiverValue
2016-04-06 13:55:35 +03:00
Michael Bogdanov
dec53c8d6c
Fix for KT-11762: "VerifyError: Bad local variable type" caused by explicit loop variable type
...
#KT-11762 Fixed
2016-04-05 13:37:10 +03:00
Dmitry Petrov
fe7f7ceed5
Do not generate postponed initialization method for part class as synchronized.
2016-04-05 11:44:36 +03:00
Michael Bogdanov
e0adfd453f
Fix for KT-11677: Generic type signatures for local classes in inlined lambdas are not written properly
...
#KT-11677 Fixed
2016-04-04 12:07:47 +03:00
Dmitry Petrov
4c4141ea49
KT-11410: write multifile class code generation scheme to extra field (xi) in kotlin.Metadata.
2016-04-01 10:13:22 +03:00
Dmitry Petrov
db58ebc4b2
KT-11410: Class hierarchy for parts/facade of multi-file class.
...
Preserve static initialization semantics for parts by introducing a special "clinit trigger" class.
Insert "static initialization trigger" call to every method of a part class, remove this call on inline.
Always mangle names for private functions in multifile class parts to avoid resolution clashes on inheritance.
NB in codegen tests initializers for all non-const vals are wrapped in 'run { ... }',
so that the initializer is not a constant expression, and some static initialization code should be generated.
2016-04-01 10:13:22 +03:00
Dmitry Petrov
0ccaf43e2c
KT-11410: Add Xmultifile-parts-inherit CLI option.
2016-04-01 10:13:21 +03:00
Denis Zharkov
182b349492
Clarify Visibility.isVisible contract for null as receiverValue
...
See comment
2016-03-31 14:51:57 +03:00
Alexander Udalov
4a533168d9
Rework const val generation in multifile classes
...
Do not query MultifileClassCodegen#classBuilder early on: this causes the class
file for the facade to be prematurely dumped to the disk in some cases, when
that class file is not yet completely generated. Instead fork the logic in
PropertyCodegen#generateSyntheticMethodIfNeeded: save metadata in parts,
generate method in the facade
2016-03-29 17:53:32 +03:00
Ilya Gorbunov
4e49187549
Dump declaration mapping during codegen process.
2016-03-29 13:49:33 +03:00
Alexander Udalov
a8bebeb48d
Load annotations of const properties from multifile classes
...
Rework backing field generation logic in PropertyCodegen to switch the
ClassBuilder instance for a multifile part to that of the corresponding facade
class. This became needed because multifile parts, and their metadata, are
generated _before_ the multifile facade class and otherwise we would never
record that there's a synthetic '$annotations' method for a const val and would
not write that to the protobuf message for the property.
See also bad83200
#KT-10892 Fixed
2016-03-28 21:11:14 +03:00
Alexander Udalov
a6610d1b0c
Drop obsolete JVM intrinsics, rename JavaClassArray -> ArrayOf
2016-03-28 14:24:23 +03:00
Michael Bogdanov
6737bc12f1
Fix for KT-11519: Version 1.0.1 fails with NPE in com.sun.beans.TypeResolver.resolve() where v1.0.0 works fine
...
#KT-11519 Fixed
2016-03-24 15:18:31 +01:00
Michael Bogdanov
d0aac74e72
Fix for KT-11590: IllegalAccessError: SAM adapter generated with invalid accessibility for inline function
...
#KT-11590 Fixed
2016-03-24 14:11:25 +01:00
Michael Bogdanov
a851bb0fff
Fix for KT-11584: Regression in 1.0.1: incorrect comparison of Long! with integer constant
...
#KT-11584 Fixed
2016-03-24 08:51:43 +01:00
Alexander Udalov
348125acb3
Fix visibility of protected classes in bytecode
...
Protected should be translated to public as in Java so that everything would
work at runtime. The real visibility is still saved to an InnerClasses
attribute
#KT-8269 Fixed
#KT-9246 Fixed
#KT-10143 Fixed
2016-03-22 18:42:34 +03:00
Ilya Gorbunov
1ae0040ca3
Minor: make variables initialized in defineClass lateinit instead of nullable.
2016-03-21 18:37:27 +03:00
Ilya Gorbunov
d9329456b5
ClassBuilder-to-ClassVisitor adapters should invoke methods of adapted ClassBuilder.
...
Call classBuilder.defineClass instead of ClassVisitor.visit.
Call classBuilder.newField instead of ClassVisitor.visitField.
2016-03-21 18:37:27 +03:00
Denis Zharkov
e54b25a35a
Fix StackOverflowError while mapping recursive intersection-type
...
#KT-10972 Fixed
2016-03-18 19:07:27 +03:00
Michael Bogdanov
c3d450f050
Fix for KT-11479: 1.0.2 Snapshot: CompilationException: Back-end (JVM) Internal error: Couldn't inline method call
...
#KT-11479 Fixed
2016-03-18 15:43:18 +01:00
Alexander Udalov
70dd79d7e4
Minor, rename TypeConstructorImpl -> ClassTypeConstructorImpl
2016-03-18 14:20:43 +03:00
Alexander Udalov
13ae3d96ab
Simplify TypeConstructorImpl, extend it from AbstractClassTypeConstructor
2016-03-18 14:20:43 +03:00
Michael Bogdanov
b95e27fd87
Fix for KT-11478: "Couldn't inline method call" error
...
#KT-11478 Fixed
2016-03-18 11:07:47 +01:00
Denis Zharkov
bfa0b69ba9
Simplify SamCodegenUtil.getOriginalIfSamAdapter
...
At the monent adapters are either:
- synthetic extensions (no overrides)
- static members:
fake override always has one overridden from super class,
that should be created as a result of SamAdapterDescriptor.createSubsitutedCopy(),
hence should be instance of SamAdapterDescriptor
2016-03-16 20:23:01 +03:00
Denis Zharkov
1d0c37ff20
Cache read classes and method nodes for inline
...
It decrease GENERATE phase nearly for 10%
2016-03-16 20:23:01 +03:00
Denis Zharkov
78c9dffe00
Refine return type of MemberScope.getContributedFunctions
2016-03-16 20:22:58 +03:00
Ilya Gorbunov
02bb7f2f0d
Remove the compiler option "Xmultifile-facades-open"
2016-03-15 14:10:33 +03:00
Natalia Ukhorskaya
e2d2d696c0
Add function name to fake local variable for inline argument
2016-03-15 13:25:49 +03:00
Michael Bogdanov
3eb6749377
Call done on when mapping transformation end
2016-03-15 10:04:28 +03:00
Alexander Udalov
4f77b02a58
Rename 'ins' -> 'Ins' in BuiltinsPackageFragment and related classes
2016-03-14 20:41:46 +03:00
Alexander Udalov
11409ec6cf
Move some function type utilities from descriptors to frontend
2016-03-14 19:45:09 +03:00
Alexander Udalov
5b7115dc38
Minor, drop deprecated KotlinBuiltIns.getExtensionFunction
2016-03-14 19:45:08 +03:00
Alexander Udalov
2ce661af98
Rename KotlinBuiltIns.getFunctionType -> createFunctionType, move to functionTypes.kt
2016-03-14 19:24:06 +03:00
Michael Bogdanov
92f1a20d5f
New name generation for transformed when classes
2016-03-14 12:22:06 +03:00
Michael Bogdanov
a72636afb8
Code clean
2016-03-14 11:26:51 +03:00