Andrey Breslav
aa00862425
Double-checked locking fixed in LockBasedStorageManager
...
There were two problems here:
* a volatile field was read and then a local variable used, i.e. the field might have been changed in between the check and the return;
* this volatile read was unnecessary, because the whole purpose of `_value` local variable is to avoid it.
2014-03-12 13:55:24 +04:00
Alexander Udalov
d04ee09636
Rename "import jet" to "import kotlin" in Java sources
2014-03-02 21:33:22 +04:00
Alexander Udalov
ebd0ce597c
Minor, fix typo in filename
2014-02-21 20:49:13 +04:00
Alexander Udalov
4117d04742
Don't use FileUtil in BuiltInsSerializer
...
See the comment
2014-02-21 20:49:12 +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
Andrey Breslav
0f4994f8b0
Created LockBasedStorageManagerWithExceptionTracking
2014-01-30 21:03:53 +04:00
Andrey Breslav
210827b1d5
ExceptionUtils rewritten in Kotlin
2014-01-30 21:03:53 +04:00
Andrey Breslav
d0787795b6
StorageManager supports centralized exception handling
2014-01-30 21:03:52 +04:00
Andrey Breslav
5378bded1e
Minor: reorder methods and constructors
2014-01-30 21:03:52 +04:00
Andrey Breslav
707255eef6
Automatic toString() for LockBasedStorageManager
2014-01-29 15:34:50 +04:00
Andrey Breslav
ce1702d633
Replace a hack (Internals class) with a less-of-a-hack workaround
...
LockBasedLazyResolveStorageManager is put into the same package as LockBasedStorageManager
2014-01-20 23:01:19 +04:00
Andrey Breslav
8f56283771
Same storage manager used by lazy resolve session in AnalyzerFacadeForJVM and the rest of the components
2014-01-20 16:17:53 +04:00
Andrey Breslav
ff6cbca797
Cryptic-looking functions (iif, eq, neq etc) removed
2014-01-15 16:16:21 +04:00
Andrey Breslav
0f9b9ed245
StorageManager rewritten to Kotlin
2014-01-15 16:14:57 +04:00
Andrey Breslav
089352b525
isError() implemented for lazy java types
2014-01-15 16:14:41 +04:00
Andrey Breslav
8dc526a5e1
isEmpty() and flatten() added
2014-01-15 16:07:38 +04:00
Andrey Breslav
65316b9fab
printAndReturn() added
2014-01-15 16:07:38 +04:00
Andrey Breslav
d0d77181e3
ifEmpty for collections
2014-01-15 16:07:37 +04:00
Andrey Breslav
9ace8eedf1
Resolving functions (no propagation/alternative signatures)
2014-01-15 16:07:36 +04:00
Andrey Breslav
bed01b601b
Annotations supported
2014-01-15 16:07:36 +04:00
Andrey Breslav
9879965407
Library functions
2014-01-15 16:07:35 +04:00
Andrey Breslav
36dd874c27
coreLib and Java collections utilities
2014-01-15 16:07:35 +04:00
Andrey Breslav
161998d2b8
Recursion detection fixed for memoized functions
2013-12-30 19:43:17 +04:00
Andrey Breslav
968e380321
Proper toString() for wrapped throwables
2013-12-30 19:29:33 +04:00
Andrey Breslav
5f20450053
Preserve exception cause in LockBasedStorageManager
2013-12-24 19:21:52 +04:00
Andrey Breslav
ac191a7dbb
Introduce fall-through handling of recursion in lazy values
...
Fixed EA-52272 - NA: LockBasedStorageManager$LockBasedLazyValue.recursionDetected
2013-12-20 18:30:10 +04:00
Andrey Breslav
44e055e698
Explicit lock references replaced with capturing StorageManager as an outer instance
2013-12-20 17:29:32 +04:00
Andrey Breslav
4ac7afbb9f
Module annotations-ext removed. Annotations are moved to runtime
2013-11-21 20:47:48 +04:00
Andrey Breslav
d9444fea09
printScopeStructure() introduced for debugging
2013-11-21 13:07:38 +04:00
Andrey Breslav
ba8bcb2e9a
Better diagnostics + basic recursion detection in memoized functions
2013-11-21 13:07:34 +04:00
Andrey Breslav
4aadf6e802
Storage manager framework uses Kotlin iterfaces
2013-11-21 13:07:34 +04:00
Andrey Breslav
cd275fd814
'runtime' module replaced by 'kotlin-runtime' library
2013-10-14 14:42:25 +04:00
Andrey Breslav
00c3156b59
Use Unit instead of Void
2013-10-05 16:59:57 +04:00
Andrey Breslav
2e585f88a3
ReenteringLazyValueComputationException & co moved to frontend
2013-10-05 16:59:57 +04:00
Andrey Breslav
0765e89b19
Weakly retained memoized functions moved out of util.runtime
2013-10-05 16:59:57 +04:00
Andrey Breslav
5ebbe0d772
Get rid of dependency on guava in DFS
2013-10-05 16:59:57 +04:00
Andrey Breslav
239ca9728d
StorageManager API does not use Computable and Function and more
2013-10-05 16:59:57 +04:00
Andrey Breslav
7d1c46ed2c
Getting rid of Computable and Function in lazy values and memoized functions
2013-10-05 16:59:56 +04:00
Andrey Breslav
4d28dfada6
Lazy values and memoized functions conform to Kotlin's function interfaces
2013-10-05 16:59:56 +04:00
Alexander Udalov
9d7968457f
JDR doesn't depend on intellij-core
2013-10-04 18:32:42 +04:00
Andrey Breslav
4cd5c66c27
No need to escape exceptions in recursionDetected()
2013-10-03 15:49:20 +04:00
Andrey Breslav
db34868b6e
Migrate existing code to LockBasedStorageManager.NO_LOCKS
2013-10-03 15:49:20 +04:00
Andrey Breslav
aa90302d1b
Tests for storage manager
2013-10-03 15:49:20 +04:00
Andrey Breslav
0591ceb7f0
Make ReenteringLazyValueComputationException debuggable in tests & internal mode
2013-10-03 15:49:20 +04:00
Andrey Breslav
5f4af8fb03
Distinguishing first and subsequent recursive calls to lazy values
2013-10-03 15:49:20 +04:00
Andrey Breslav
eb20d358b0
Fall-through case removed
2013-10-03 15:49:20 +04:00
Andrey Breslav
41a73645c6
Using enum instead of Object constants
2013-10-03 15:49:20 +04:00
Andrey Breslav
d7773415bf
Support storage manager with no locks
2013-10-03 15:49:19 +04:00
Andrey Breslav
0c83832f27
Use ReentrantLock instead of intrinsic locks in LockBasedStorageManager
2013-10-03 15:49:19 +04:00