Commit Graph

1058 Commits

Author SHA1 Message Date
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
Alex Tkachman ae93018546 fix for several (unlikely all) closely related problems with handling of byte/short/char on Delvik #KT-2251 fixed 2012-09-18 16:53:55 +03:00
Alex Tkachman 0ffc8f355b attempt to fix KT-2251 2012-09-18 14:25:09 +03:00
Alex Tkachman d2c4f5c4a5 field access level change to private which it should be 2012-09-18 09:37:50 +03:00
Alex Tkachman 8e463ac0ac equals generation for data classes 2012-09-17 18:48:17 +03:00
Evgeny Gerashchenko 8f337cbd7c Removed 'sure' intrinsic method. 2012-09-17 18:00:22 +04:00
Alex Tkachman 8c823486d7 hashCode generation for data classes 2012-09-17 15:52:23 +03:00
Alex Tkachman a4e272d7c6 optimization of toString for primitive types and "$expr"
- intrinsic toString for promitive types added to stdlib
- utility method added to CodegenUtil
- optimization logic added to generation of interpolating string
2012-09-17 13:00:02 +03:00
Alex Tkachman 3b96624c81 small optimizaton of toString for primitive types (no boxing needed) 2012-09-17 09:07:08 +03:00
Alex Tkachman 58af365eb2 toString() method for data classes and fake implementation for hashCode/equals 2012-09-16 15:56:48 +03:00
Alex Tkachman e317764a88 correct access flags for package private (coming from java) #KT-2781 fixed 2012-09-16 10:08:36 +03:00
Alex Tkachman 99196c187b unification of codegen for singletons between object declarations, classobjects and const closures 2012-09-15 22:54:38 +03:00
Alex Tkachman f8983d8516 static final field for class object moved to class object class from containing class 2012-09-15 21:23:42 +03:00
Alex Tkachman 104f2a08d3 cleanup refactoring - classAsType & superClassAsmType introduced 2012-09-15 15:50:14 +03:00
Alex Tkachman 93def61813 getMethodAsmFlags extracted 2012-09-15 15:28:41 +03:00