Commit Graph

1432 Commits

Author SHA1 Message Date
Alexander Udalov 028274b934 Don't assert that class is found in BindingContext
This isn't true when light classes are generated, according to other such
checks in the same file

 #KT-4276 Fixed
2013-12-04 15:57:52 +04:00
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