Commit Graph

2531 Commits

Author SHA1 Message Date
Andrey Breslav 5b67cf67eb Usages of expressionTypingServices from ExpressionTypingContext are replaced with injection
The basic principle behind this change is that no context object should store components.
Components should be injected instead, and contexts only carry parameters around.

Particular changes:
- resolveCallWithGivenName() and resolveBinaryCall() moved to CallResolver
- ForLoopConventionsChecker introduced to confine checking conventions for Iterator and Iterable
- ExpressionTypingComponents introduced to deliver necessary components to ExpressionTypingVisitor's
- Some static methods became non-static to get access to injected components
- ExpressionTypingUtils and ControlStructureTypingUtils became components (got state injected) to avoid passing parameters around
2014-02-24 15:52:52 +04:00
Andrey Breslav ff762a4467 Use JDK annotations downloaded from a KAnnotator build 2014-02-21 19:23:41 +04:00
Nikolay Krasko a2c567da93 Common injector for lazy resolve with java lazy resolve 2014-02-20 16:31:22 +04:00
Nikolay Krasko 592969bad1 Rewrite utils method for qualified names to Kotlin 2014-02-20 16:17:51 +04:00
Nikolay Krasko ac4fe93774 Add ability to filter out some particular classes from generator 2014-02-20 16:17:38 +04:00
Nikolay Krasko e9091c85a4 Compile java sources into library 2014-02-20 16:08:03 +04:00
Alexander Udalov 339a990482 Remove ClassLoaderIsolationUtil
Minimize usages of jet.* in Java code: this will help in migration of jet.* to
package kotlin. Since tests will work with fq names instead of Class<?>
instances from now on, ClassLoaderIsolationUtil is useless now (except for one
unrelated method, which was moved to CodegenTestUtil)
2014-02-19 17:46:18 +04:00
Alexander Udalov eb7b757e38 Fix VerifyError on rangeTo on primitive types 2014-02-19 17:46:18 +04:00
Alexander Udalov 304129f9c9 Check if the class is special by FQ name
This is needed because our built-ins can be loaded with two different
mechanisms (deserialization and lazy resolve) and, when that happens,
corresponding descriptors aren't equal to each other, so one of two resolved
descriptors for Any (or the same with Nothing) was never considered to be a
"special class" with no supertypes
2014-02-19 17:44:19 +04:00
Alexander Udalov 3e33473c1a Don't check equals, hashCode, toString in LoadBuiltinsTest
Otherwise there'll be too many fake overrides when these methods will appear in
Any
2014-02-19 17:44:19 +04:00
Andrey Breslav b0ec4f10e9 Migrate from MutableClassDescriptor to ClassDescriptorWithResolutionScopes
Cast to MutableClassDescriptor where needed. The code with casts will be removed shortly
2014-02-19 14:30:48 +04:00
Natalia Ukhorskaya 9f3b73986a Update to IDEA 13.1 (134.1007) 2014-02-17 10:45:48 +04:00
Pavel V. Talanov 4c57aa9f23 Generate Injectors: minor, remove redundant GenerateInjectors class 2014-02-14 16:47:23 +04:00
Pavel V. Talanov f8a8bbe9b0 Generate Injectors: add ability to specify that a field is a context
Context field's properties can injected into other components
Use it in GenerateInjectors.kt
2014-02-14 16:47:22 +04:00
Pavel V. Talanov 6c77ea91c5 Generate Injectors: simplify and remove redundancy 2014-02-14 16:47:21 +04:00
Evgeny Gerashchenko 5a1f98041e Simplified kotlinc tests. 2014-02-13 20:46:29 +04:00
Alexander Udalov 8b918ef1aa Add regression tests for obsolete issues
#KT-1291 Obsolete
 #KT-2895 Obsolete
 #KT-3060 Obsolete
 #KT-3298 Obsolete
 #KT-3613 Obsolete
 #KT-3862 Obsolete
2014-02-13 04:43:53 +04:00
Alexander Udalov a98434263b Add regression test for outdated issue
#KT-3738 Obsolete
2014-02-12 19:17:55 +04:00
Alexander Udalov 35c7c4afd8 Fix capturing outer this in some cases in JVM codegen
When property initializer of some inner entity (e.g. anonymous object) contains
a reference to some outer entity (say, a property of the outer class), we need
to make sure we called "lookupInContext" on this entity's owner class, so that
"setCaptureThis" was called on the appropriate closure

 #KT-4176 Fixed
2014-02-12 19:17:55 +04:00
Svetlana Isakova 70374ea9be KT-4529 Lambdas are analyzed improperly in an infix call nested inside a println
#KT-4529 Fixed
2014-02-12 14:47:10 +04:00
Svetlana Isakova 2ebe8fd6a2 improvements after review in constraint system tests 2014-02-12 12:48:15 +04:00
Svetlana Isakova 9832676701 generate constraint system tests
more tests added
2014-02-12 12:48:13 +04:00
Svetlana Isakova 791fa22abb KT-4405 Control-flow analysis is not performed for some local declarations #KT-4405 Fixed 2014-02-12 12:48:13 +04:00
Svetlana Isakova aa713ef1f6 generate pseudocode for property accessor only if the property is local
otherwise check it independently like a function
2014-02-12 12:48:12 +04:00
Svetlana Isakova 1c4db84d92 do not try properties named 'invoke' when resolve 'invoke' 2014-02-12 12:48:12 +04:00
Svetlana Isakova b51e3dc464 added ConstraintSystemTest 2014-02-12 12:48:11 +04:00
Svetlana Isakova 9d493b6f7b generate CHECK_CAST for smartcasted 'this' 2014-02-12 12:48:11 +04:00
Svetlana Isakova 9ed57a5767 removed AutoCastReceiver
check subtype for receiver by AutoCastUtils.isSubTypeByAutoCast directly
 #KT-4403 Fixed
 #KT-4415 Fixed
2014-02-12 12:48:10 +04:00
Svetlana Isakova 5ef320173c generate pseudocode for functions in local classes
#KT-4405 In progress
 #KT-3501 Fixed
2014-02-11 21:07:10 +04:00
Svetlana Isakova f74fbf9f8b added readme file about diagnostic tests directives 2014-02-11 21:07:09 +04:00
Svetlana Isakova 8868da8c5f KT-4372 Invalid error position and failing to resolve invoke with receiver from other module #KT-4372 Fixed 2014-02-11 21:07:09 +04:00
Svetlana Isakova 45abab2a2c KT-4341 No resolved call for right-hand side of equals expression
#KT-4341 Fixed
2014-02-11 21:07:08 +04:00
Svetlana Isakova aca21f78d5 check incomplete equality 2014-02-11 21:07:08 +04:00
Pavel V. Talanov 80183c88cf Do not normalize visibilities for fake overrides
#KT-4525 Fixed
2014-02-11 20:13:11 +04:00
Pavel V. Talanov e3ae7afac3 Add validation for binding between java classes and corresponding package fragments 2014-02-11 17:17:06 +04:00
Tuomas Tynkkynen 7429cc8819 Make JetTestUtils.getLastCommentInFile() to allow trailing newline
Many editors add a trailing newline when saving. Allow them in
getLastCommentInFile.
2014-02-09 17:22:10 +04:00
Tuomas Tynkkynen 420a08167b Extract JetTestUtils.getLastCommentInFile()
JetNameSuggesterTest contains useful code for getting the last comment
of a file. Extract it to JetTestUtils.getLastCommentInFile() so other
tests can use it as well.
2014-02-09 17:22:07 +04:00
Andrey Breslav 9229062926 Do not annotate bare type parameters as @Nullable
This is to account for the case of, say

     class Function<R> { fun invoke(): R }

it would be a shame to put @Nullable on the return type of the function, and force all callers to check for null,
so we put no annotations
2014-02-07 16:41:12 -08:00
Mikhael Bogdanov e0ca1abe4b KT-3706 Inconsistent stack height in try catch finally in function
KT-4134 Incorrect bytecode is generated for

 #KT-3706 Fixed
 #KT-4134 Fixed
2014-02-07 13:45:22 +04:00
Evgeny Gerashchenko ce7e0a7457 Fixed problem with overriding method with non-trivial raw type (when erased type parameter has upper bound)
Also added cases for the code which was changed.
2014-02-06 13:52:59 +04:00
Andrey Breslav 8dc9aecbf8 DescriptorSearchRule removed 2014-02-05 18:12:01 +04:00
Andrey Breslav e60bd514fa StorageManager&ExceptionTracker delivered where needed
- GlobalContext introduced to group the two
- Caches track exceptions
2014-02-04 15:24:27 +04:00
Andrey Breslav a90dbc48ef Information about LockBasedStorageManager instances added to assertions 2014-02-04 15:23:14 +04:00
Nikolay Krasko f526129ca4 Refactoring: use injector for creating lazy resolve session 2014-02-04 12:31:38 +04:00
Nikolay Krasko 36d5e580b4 Refactoring: remove unnecessary constructors (prepare for injectors) 2014-02-04 12:31:37 +04:00
Alexander Udalov 320a583de8 Check that lazy resolve works correctly on built-ins
This test is needed because BuiltInsSerializer uses lazy resolve to load and
serialize built-ins. We need to make sure that lazy resolve works exactly like
deserialization
2014-01-31 16:46:18 +04:00
Alexander Udalov e28819b42e Revert "Using default renderer in LoadBuiltinsTest."
This reverts commit 1d21ebf882.

Conflicts:
	compiler/testData/builtin-classes.txt
	core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java

Reverting a part of this (related to the field 'prettyFunctionTypes') because
will need to add a test that deserialized built-ins (obtained by
KotlinBuiltIns.getInstance()) are consistent with lazy resolved built-ins. This
test would break because while DescriptorRenderer renders pretty function types
it compares descriptors to the ones from KotlinBuiltIns, but in case of lazy
resolve descriptors created for built-ins would be different from
KotlinBuiltIns, so renderer wouldn't correctly render a function type
2014-01-31 16:46:18 +04:00
Alexander Udalov 877d9f2220 Update year to 2014 in generated files 2014-01-31 16:46:16 +04:00
Alexander Udalov 75ab8ac5ec Don't try to generate optimized "in" for LongRange
#KT-4097 Fixed
2014-01-31 16:46:14 +04:00
Nikolay Krasko 7546a6dc41 Suppressing warnings + update copyright date 2014-01-31 14:52:13 +04:00