Commit Graph

922 Commits

Author SHA1 Message Date
Sergey Mashkov edb8797fa6 KT-2987 java.lang.AbstractMethodError/java.lang.NoSuchMethodError for delegated class by parameterized parent
#KT-2987 Fixed
2012-10-25 16:26:58 +04:00
Natalia.Ukhorskaya a79a31cf01 #KT-2811 Fixed VerifyError on smart-cast 'this' 2012-10-23 13:20:29 +04:00
Natalia.Ukhorskaya 29ca8faa4e Replace CodegenUtils.isDeprecated to KotlinBuiltIns.isDeprecated 2012-10-18 19:03:34 +04:00
Alexander Udalov ce2b915645 Generate line numbers for static delegates
Fixes debugger's "step into" for multi-file package
2012-10-17 17:57:54 +04:00
Andrey Breslav e81f38b6a8 JetStandardLibrary -> KotlinBuiltIns 2012-10-17 13:48:05 +04:00
Andrey Breslav c719ae427a JetStandardClasses -> KotlinBuiltIns 2012-10-17 13:48:05 +04:00
Natalia.Ukhorskaya 482fabfcce Write ACC_DEPRECATED in byte codes.
#KT-2950 Fixed
2012-10-16 14:41:19 +04:00
Natalia.Ukhorskaya d55a0fcacb Move isDeprecated function to CodegenUtil 2012-10-16 14:41:18 +04:00
Alexander Udalov 8bfb2ddcce Generate bridges for properties declared in constructor
#KT-2926 Fixed
 #KT-2833 Fixed
2012-10-11 17:38:46 +04:00
Alexander Udalov 5bc9291d61 Refactor PropertyCodegen
1) Introduce AsmUtil.getModalityAccessFlag()
2) Inline private methods generateDefaultGetter() and generateDefaultSetter() not
to confuse them with anything else
3) Remove dead code in PropertyCodegen.gen(), assert that it never happens
2012-10-11 17:38:46 +04:00
Natalia.Ukhorskaya 78d22e9f81 KT-2823 TypeCastException has no message
#KT-2823 Fixed
2012-10-11 15:41:49 +04:00
Alexander Udalov a31b748092 JavaElementFinder now correctly finds namespace$src$ classes
No new tests added

 #KT-2839 Fixed
2012-10-10 18:11:11 +04:00
Alexander Udalov e869568196 Generate bridges for property accessors
Use existing FunctionCodegen.generateBridgeIfNeeded() on property getters &
setters

 #KT-2920 Fixed
2012-10-09 16:36:24 +04:00
Alexander Udalov c9984c3d06 Generate not-null assertions on method parameters
Intrinsics.checkParameterIsNotNull() gets its caller's class and method names
from the stack trace to render them in an exception message.

Fix codegen tests because now it's now allowed to pass null to non-null
argument in tests
2012-10-08 19:13:20 +04:00
Alexander Udalov 753ae9e550 Add a compiler parameter to generate not-null parameter assertions
Enable/disable assertion generation on parameters in the beginning of
methods accessible from Java
2012-10-08 19:03:36 +04:00
Alexander Udalov 12ce447c24 Refactor FunctionCodegen.generateMethod() 2012-10-08 19:03:33 +04:00
Alexander Udalov bf779b4ca5 Generate not-null assertions only for descriptors coming from Java
Introduce BindingContext.IS_DECLARED_IN_JAVA, store that info in
JavaDescriptorResolver
2012-10-08 19:03:29 +04:00
Alexander Udalov fcbc95bbb4 Generate not-null assertions after getting a field 2012-10-08 14:11:57 +04:00
Alexander Udalov 27bea0a607 Pass state and property descriptor to StackValue.Property 2012-10-08 14:11:57 +04:00
Alexander Udalov 95ec2448eb Generate not-null assertions after method calls
If a method comes from Java and is annotated as returning NotNull, after
calling it we should check if it actually returned something other than null.
Introduce checkReturnedValueIsNotNull() in jet/runtime/Intrinsics which does
exactly that.

CallableMethod's invoke() and invokeDefault() are now private, use asserted
versions instead
2012-10-08 14:11:56 +04:00
Alexander Udalov 19a6a3f390 Add a compiler parameter to generate not-null assertions on method call sites
It is off by default when invoking compiler directly, and on by default when
compiling from IDE
2012-10-08 14:11:52 +04:00
Evgeny Gerashchenko 998095c55c KT-1973 Added class kind to JetClass annotations to distinguish object declarations and regular classes.
#KT-1973 in progress
2012-10-03 23:33:15 +04:00
Evgeny Gerashchenko 889a238fbc KT-1973 Made classes for objects declarations/expressions final.
#KT-1973 in progress
2012-10-03 23:30:55 +04:00
Evgeny Gerashchenko 069ef8ef91 KT-2712 Debugger should show value of receiver of extension functions
#KT-2712 fixed
2012-10-01 21:23:09 +04:00
Evgeny Gerashchenko e4f2fdc5f2 Better names for THIS$0 and RECEIVER$0 constants. 2012-10-01 21:23:09 +04:00
Evgeny Gerashchenko 3d8b6e758a Typo. 2012-10-01 21:23:09 +04:00
Alexander Udalov acf8702ccf KT-2822 Can't make a super call from an object literal
#KT-2822 Fixed
2012-09-27 16:30:58 +04:00
Svetlana Isakova 0c89c57a10 optimize imports in injectors rollback 2012-09-26 15:23:59 +04:00
Andrey Breslav 92ac865c72 KT-2819 Duplicate toString() method generated in data class
#KT-2819 Fixed
2012-09-26 12:32:16 +04:00
Alex Tkachman 4600990d52 JetValueParameter.nullable is deprecated as it duplicates info in type field 2012-09-23 13:19:51 +02:00
Alex Tkachman edc0bf0b15 returnTypeNullable in flags duplicates info in returnType annotation field 2012-09-23 12:22:57 +02:00
Alex Tkachman 1ec32810f4 - small optimizations of JavaDescriptorResolver
- kind of method encoded in flags
- nullable return type encoded in flags
2012-09-23 12:08:55 +02:00
Alex Tkachman 95489c4444 common superclass introduced for (Namespace/ClassBody/Script)Codegen 2012-09-21 16:41:50 +03:00
Alex Tkachman bc1a4a1fe9 massive refactoring of CodegenUtil
- generation method names standartized on genXXX
- many methods moved to newly created AsmUtil
- some methods moved to CodegenContext
- got rid of almost trivial StubCodegen
2012-09-20 20:19:26 +03:00
Alex Tkachman be09227569 generation of inner classes inside object literal. #KT-2607 fixed
on the way ClassCodegen and MemberCodegen refactored out and injectors regenerated
2012-09-20 17:57:07 +03:00
Alex Tkachman 242ee38606 generic signatures for properties #KT2677 fixed 2012-09-20 17:54:40 +03:00
Alex Tkachman eaf9a79420 correct handling of delegate properties #KT-2786 fixed 2012-09-20 17:54:40 +03:00
Nikolay Krasko c7af6de16b KT-1187 Wrong unnecessary completion
#KT-1187 Fixed
2012-09-20 16:50:12 +04:00
Alexander Udalov 83fb970066 Write correct inner enum info in codegen
#KT-2771 In Progress

writeInnerClasses() now writes correct InnerClasses attribute with respect to
inner enums (see comments in the code).
2012-09-20 15:02:57 +04:00
Alexander Udalov 5af90c2a83 Extract some methods in codegen
Introduce DescriptorUtils#getInnerClasses(), which gets all descriptors from
inner classes scope and asserts that they are classes.

Inner/outer classes attributes are generated in separate methods.
2012-09-20 15:02:54 +04:00
Alex Tkachman b022eec0fa call correct methods String.valueOf/StringBuilder.append in case of byte/short. #KT-2794 fixed 2012-09-20 11:46:40 +03:00
Alex Tkachman 3dd9c6ab10 {} replaced by () in data classes toString 2012-09-19 13:50:50 +03:00
Svetlana Isakova 4bdeaffa04 use "JvmClassName.byFqNameWithoutInnerClasses" instead of "replace('.', '/')" 2012-09-19 13:06:25 +04:00
Svetlana Isakova 618f1b377b added signatureName format to JvmClassName 2012-09-19 13:06:25 +04:00
Svetlana Isakova 290343ed02 refactoring 2012-09-19 13:06:25 +04:00
Svetlana Isakova d721287db6 write kotlin signature for ambiguous mapped types e.g. jet.List/MutableList for java.util.List 2012-09-19 13:06:25 +04:00
Andrey Breslav b8ef69e044 Tuple support removed from the JVM back-end
#KT-2358 In progress
2012-09-18 20:50:02 +04:00
Andrey Breslav dee5152f9b Supporting Unit.VALUE, to replace #()
#KT-2358 In Progress
2012-09-18 20:27:09 +04:00
Andrey Breslav 83bc835343 Assert message addded 2012-09-18 20:27:09 +04:00
Alex Tkachman 7b066faa9f changed behavior of componentX/toString/hashCode and equals to work naturally with overriden properties 2012-09-18 18:08:16 +03:00