Commit Graph

3479 Commits

Author SHA1 Message Date
Alexander Udalov 4d95bcfc7e Rename CharSequence.get to charAt
This is done for JVM interoperability. There's still a member function
String.get() and an extension function "get" on CharSequence

 #KT-1730 Fixed
 #KT-5389 Fixed
2014-11-27 20:38:18 +03:00
Alexander Udalov a7b88e9485 Make CharSequence.length a function instead of property
And String.length as well.

This is done for JVM interoperability: java.lang.CharSequence is an open class
and has a function 'length()' which should be implemented in subclasses
somehow.

A minor unexpected effect of this is that String.length() is now a compile-time
constant (it wasn't such as a property because properties are not supported in
compile-time constant evaluation)

 #KT-3571 Fixed
2014-11-27 20:38:17 +03:00
Denis Zharkov 3b2d0b88f3 Supported nested reified parameter declarations
Also switched to using type names as identifiers instead of their
indices
2014-11-27 15:15:04 +04:00
Denis Zharkov 080610c208 Wrap parentCodegen before generating from inline 2014-11-27 14:58:04 +04:00
Denis Zharkov 02be1063c1 Do not report a warning on an inline function with a reified parameter
#KT-6273 Fixed
2014-11-27 13:49:17 +04:00
Denis Zharkov f7d1bc5931 Diagnostics test: array creation of non-reified TP
#KT-1370 Fixed
2014-11-27 13:49:17 +04:00
Svetlana Isakova 724f2e6e7b KT-6081 Chained generic method calls: wrong type inference
#KT-6081 Fixed
2014-11-27 02:28:10 +03:00
Alexander Udalov a6d759ff96 Minor, add test for obsolete issue
#KT-3587 Obsolete
2014-11-25 23:16:56 +03:00
Alexander Udalov 3a066dfd07 Rename "context" -> "c" in deserialization for brevity 2014-11-25 23:16:27 +03:00
Alexander Udalov 1f68c94ce6 Fix several bugs in serialization of inner generic classes
- Interner was working incorrectly with parents
- nested classes were serialized in codegen out of any context

 #KT-5660 Fixed
2014-11-25 23:16:26 +03:00
Alexander Udalov 07c3a07ecb Make DeserializedType a static nested class 2014-11-25 23:15:49 +03:00
Andrey Breslav 2a334fc8f5 Support JS-targeted diagnostic tests 2014-11-25 18:45:43 +03:00
Valentin Kipyatkov ddc60ac5dd Better injecting of partial body resolve filter 2014-11-24 20:11:28 +03:00
Nikolay Krasko 9809e4fd0a Replace direct usages of TopDownLazyResolveForJava with facade 2014-11-24 19:19:35 +03:00
Nikolay Krasko a456f9d22e Add ability to create memoized functions with custom maps
- Remove cast in ResolveSession class
2014-11-24 19:19:14 +03:00
Michael Bogdanov 8fc3a37989 Fix for KT-6312: Compiler crashes accessing inherited property of class object
#KT-6312 Fixed
2014-11-24 13:10:59 +03:00
Andrey Breslav 08ad4bec64 More information when no containing field found 2014-11-21 19:03:00 +03:00
Andrey Breslav 93a409d459 Rendering for resolution candidates 2014-11-21 19:02:47 +03:00
Andrey Breslav b109a34651 Common formatting extracted 2014-11-21 18:59:45 +03:00
Andrey Breslav 4112b2de5f Disable lazy log checking by default 2014-11-21 18:59:44 +03:00
Pavel V. Talanov bce399f5fd Rename: AnalyzeExhaust -> AnalysisResult 2014-11-21 15:56:05 +03:00
Pavel V. Talanov 0319ef797e Refactor: Introduce DeclarationDescriptor#module utility 2014-11-21 15:56:03 +03:00
Pavel V. Talanov 1991f0119e Convert AnalyzeExhaust to Kotlin and make it a data class 2014-11-21 15:55:59 +03:00
Svetlana Isakova b71260f54e Moved tests
that are used both for codegen & diagnostics to codegen/box/diagnostics
2014-11-21 14:02:45 +03:00
Svetlana Isakova 9cd5f51b88 Added test for KT-4711
Error type with no error reported from type inference
 #KT-4711 Fixed
2014-11-21 14:02:43 +03:00
Svetlana Isakova 5d0f004292 Fix for 'if' special construct type
If one branch has Nothing type (contains 'return', etc.),
return result type of corresponding resolved call (it may depend on smart casts)
 #KT-6242 Fixed
2014-11-21 14:02:42 +03:00
Svetlana Isakova 36fd8a1a08 Set the right call operation node for implicit invoke
Make a call for implicit invoke safe if an outer call is safe
2014-11-21 14:02:42 +03:00
Svetlana Isakova 7f62675665 Fixed error reporting for special constructions (if, elvis)
Track whether an error was reported for sub expressions (like 'if' branches) or it should be reported for the whole expression
 #KT-6189 Fixed
2014-11-21 14:02:42 +03:00
Svetlana Isakova 8109b1f997 DONT_CARE placeholder can be nullable after a substitution
Interpret it as DONT_CARE as well (not as an error type where an error was generated before)
 #KT-6175 Fixed
2014-11-21 14:02:41 +03:00
Svetlana Isakova 8ad017c071 Extracted 'deparenthesizeArgument', used it where necessary
#KT-6176 Fixed
2014-11-21 14:02:41 +03:00
Michael Bogdanov e2826a47e1 Remove "operation" method from StackValue.kt;
Compilation fix: remove static import to kotlin from AsmUtil
2014-11-21 13:59:44 +03:00
Michael Bogdanov 3a70992d27 Lazy intrinsic generation
#KT-6241 Fixed
2014-11-21 13:59:43 +03:00
Michael Bogdanov ec649e83c3 Don't skip receiver with side effects on static calls
#KT-6278 Fixed
2014-11-20 10:20:33 +03:00
Michael Bogdanov 2cc9d8e29b Support platformStatic for properties
#KT-5766 Fixed
2014-11-20 10:20:31 +03:00
Michael Bogdanov 5412a67d29 Generate static backing fields for properties in object
#KT-4973 Fixed
2014-11-20 10:20:31 +03:00
Michael Bogdanov af998101b3 Fix for KT-4206: NoSuchFieldError with class objects
#KT-4206 Fixed
2014-11-20 10:20:12 +03:00
Michael Bogdanov 7d1fd47569 Rewrite local var increment optimization 2014-11-20 10:20:12 +03:00
Michael Bogdanov 855bf772ca Prefix inc refactoring 2014-11-20 10:20:12 +03:00
Michael Bogdanov c7b1c0fe52 Store refactoring
#KT-1213 Fixed
2014-11-20 10:20:11 +03:00
Alexey Sedunov a6479bfc90 Light Classes: Do not add "final" modifier to enum light classes 2014-11-18 13:24:56 +03:00
Stanislav Erokhin caf44969a4 Add support for check diagnostic parameters in test. 2014-11-17 17:45:06 +03:00
Stanislav Erokhin 2033042d33 Make candidates lazy in ResolutionTask & ResolutionTaskHolder 2014-11-17 17:38:52 +03:00
Stanislav Erokhin eb50e4adb3 Inject StorageManager to ResolutionTaskHolder 2014-11-17 17:38:52 +03:00
Alexander Udalov 93696ff9bd Make Array.indices extension property, move to stdlib
This is not something that needs to be intrinsified. Note that compiler
optimizations are still possible and the fact whether 'indices' is a member or
an extension is irrelevant to the optimizer
2014-11-17 15:20:44 +03:00
Alexander Udalov 128c938965 Make Array.size() a function instead of a property
Also add a deprecated extension property to help migration. This is done to
unify getting size of arrays and collections
2014-11-17 15:02:38 +03:00
Pavel V. Talanov 40addaed13 Fix wrong deserialization order
For case when property and function have the same name or
extension and non-extension member have the same name
2014-11-14 17:09:14 +03:00
Pavel V. Talanov 8016766b23 Extension/non-Extension members are deserialized in correct order 2014-11-14 16:18:33 +03:00
Pavel V. Talanov 028e9105af Add test for enum class with inner classes 2014-11-14 16:18:32 +03:00
Pavel V. Talanov 77dd027d69 Use MemberComparator in DescriptorSerializer 2014-11-14 16:18:29 +03:00
Pavel V. Talanov dc134b3394 MemberComparator: enum entries have top priority and are never reordered
Fix rendering accordingly
2014-11-14 16:18:29 +03:00