Commit Graph

1431 Commits

Author SHA1 Message Date
Alexander Udalov fa7076a4fa Fix ClassCastException with nullable chars
#KT-4210 Fixed
 #KT-4098 Fixed
 #KT-4251 Fixed
2013-12-04 15:57:52 +04:00
Alexander Udalov 4aa6a42483 Support codegen of empty for-loop
#KT-3009 Fixed
 EA-35742 fixed
2013-12-04 15:19:56 +04:00
Alexander Udalov 61ff9eb45b Support codegen of empty do-while-loop
#KT-3009 In Progress
2013-12-04 15:19:56 +04:00
Alexander Udalov 9058272528 Support codegen of empty while-loop
#KT-3009 In Progress
2013-12-04 15:19:56 +04:00
Alexander Udalov 4cd4026174 Support empty if-statements
Type-check "if (...) ;" to Unit, report "implicit cast to Unit", propagate data
flow info out of its condition

 #KT-2478 Fixed
2013-12-04 15:19:47 +04:00
Alexander Udalov 9890f2e5ac Simplify CodegenBinding.canHaveOuter(), make it work for objects
This fixes CompileKotlinAgainstKotlinTest
2013-12-02 19:56:10 +04:00
Alexander Udalov 5a4cc1e2fe Put enum entries into enum class in JDR 2013-12-02 19:56:07 +04:00
Alexander Udalov 60e7722a82 Enum entries are put into enum class, not its class object 2013-12-02 19:56:06 +04:00
Alexander Udalov a5d6d6719c EnumValue now has a ClassDescriptor for its enum entry 2013-12-02 19:56:06 +04:00
Alexander Udalov 6f930ef725 Support updated enum entry hierarchy in JVM codegen 2013-12-02 19:56:05 +04:00
Alexander Udalov c04f63e157 Change object deserialization strategy
Objects now have synthetic class objects in deserialization as well. "Class"
proto message now can have a synthetic class object proto within, if it's not
contained in any external class file, which is the case with objects. Drop
"class_object_present" field from binary format, since its value is equivalent
to the presence of "class_object" field
2013-12-02 19:55:21 +04:00
Alexander Udalov ae116c6d9a Support updated object hierarchy in JVM codegen 2013-12-02 19:55:20 +04:00
Alexander Udalov 18c59d5495 Treat anonymous objects as classes (ClassKind.CLASS)
They're not objects per se, i.e. they're not singletons
2013-12-02 19:55:19 +04:00
Mikhael Bogdanov 8533fd64ff Compiler inline on/off flag 2013-12-02 18:30:42 +04:00
Andrey Breslav 93160431f9 Fix recusrive calls in infix and prefix form
The infamous invokeOperation() method removed
2013-11-29 12:52:58 +04:00
Andrey Breslav db4b73189a Move handling of VariableAsFunctionCall's to invokeFunction 2013-11-29 12:52:57 +04:00
Andrey Breslav 23e533f3b7 Render byte code on exception from back-end 2013-11-29 12:52:57 +04:00
Alexey Sedunov 6dfad69434 Allow super calls in object declarations 2013-11-26 17:29:59 +04:00
Mikhael Bogdanov 9037449313 Inline flag calculation through inline annotation 2013-11-26 12:53:07 +04:00
Alexander Udalov a77d6a006d Cleanup ClassDescriptorImpl & ErrorClassDescriptor
ClassDescriptorImpl now extends ClassDescriptorBase and reuses most of its
functionality. ErrorClassDescriptor now is initialized in its own constructor.
Inline trivial arguments everywhere
2013-11-21 19:34:51 +04:00
Alexander Udalov 2c6bf6171f Rename ClassKind.isObject -> isSingleton
"isObject" gives a false impression that this is a check if the kind is OBJECT
2013-11-21 19:34:50 +04:00
Andrey Breslav 054ecdaa6c More info in the assert message 2013-11-21 13:07:39 +04:00
Andrey Breslav 0c2e1fb806 @NotNull annotations on descriptor classes 2013-11-21 13:07:34 +04:00
Natalia Ukhorskaya d241bfc138 KT-3517 Can't call .equals() on a boolean
#KT-3517 Fixed
2013-11-19 12:05:26 +04:00
Alexey Sedunov 523e44f00d Annotate JetVisitorVoid and its inheritors 2013-11-18 18:49:30 +04:00
Andrey Breslav 0c1c0e0099 Always generate local variable table to preserve parameter names 2013-11-15 19:41:25 +04:00
Alexander Udalov 76e347e530 Minor, rename method 2013-11-14 19:11:20 +04:00
Alexander Udalov 69ed375ce1 Extract SpecialNames utility class 2013-11-14 19:11:19 +04:00
Alexander Udalov d6aa7c2d23 Minor, inline method 2013-11-14 19:11:19 +04:00
Andrey Breslav 6efd72738a More information in error message 2013-11-13 18:09:37 +04:00
Pavel Talanov 82feef23c3 Rename: OverridingUtil#filterOverrides -> filterOutOverridden to be more precise 2013-11-12 14:15:43 +04:00
Andrey Breslav 2b6f688a52 Annotate fields from traits' class object properties 2013-11-11 17:20:16 +04:00
Andrey Breslav 1f574a9feb Do not annotate private members and their parameters (to save space) 2013-11-11 17:20:15 +04:00
Andrey Breslav 0959f7e37c Don't mark primitive types as @NotNull 2013-11-11 17:20:15 +04:00
Andrey Breslav f3901d2844 visitAnnotation() could return null for light classes 2013-11-11 17:20:15 +04:00
Andrey Breslav 2873f74932 Generate @Nullable/@NotNull annotations on Kotlin declarations (for IDEA interop) 2013-11-11 17:20:15 +04:00
Andrey Breslav 4268d8aa27 Generate parameter annotations even in LIGHT_CLASSES mode 2013-11-11 17:20:15 +04:00
Mikhael Bogdanov 1795b2a0bc KT-4118 Closures mix makes code fail on runtime
#KT-4118 Fixed
2013-11-11 12:22:06 +04:00
Zalim Bashorov 4cea0a3de4 Fix build after change api 2013-11-08 18:14:21 +04:00
Zalim Bashorov ae8ac28ddc Split OutputFileFactory to OutputFileCollection and OutputFile 2013-11-08 18:14:21 +04:00
Zalim Bashorov 5dd4eb780e Extracted OutputFileFactory interface. 2013-11-08 18:14:20 +04:00
Mikhael Bogdanov df03eb5330 KT-4173: Can't pass a non-trivial closure to a super-call for object expression
#KT-4173 Fixed
2013-11-08 15:19:20 +04:00
Mikhael Bogdanov 2c75bdacc5 Added exception for outer absence 2013-11-08 14:10:35 +04:00
Mikhael Bogdanov 3ee9b8cbc5 Code rearrangment 2013-10-31 16:48:31 +04:00
Mikhael Bogdanov ee2a30f34f KT-4152 Wrong postfix increment/decrement calculation
#KT-4152 Fixed
2013-10-31 16:48:24 +04:00
Mikhael Bogdanov c325dfffd9 KT-3523: VerifyError for invoke function in inner class
KT-4106: VerifyError: Can't access outer this in a lambda in inner class' constructor
KT-3152: VerifyError when accessing from a function of object to a field of outer outer class

  #KT-3523 Fixed
  #KT-4106 Fixed
  #KT-3152 Fixed
2013-10-31 16:42:53 +04:00
Mikhael Bogdanov 10396b853a Code block reorganization 2013-10-31 16:42:53 +04:00
Mikhael Bogdanov 318214b9d7 Capturing this in constructor context
KT-4086 VerifyError creating anonymous object in constructor
 #KT-4086 Fixed
2013-10-31 16:42:53 +04:00
Mikhael Bogdanov 936c0a0ae9 Lazy calculation of outer expression 2013-10-31 16:42:51 +04:00
Mikhael Bogdanov 47cd9a71a2 Inline local var 2013-10-31 12:31:39 +04:00