Commit Graph

290 Commits

Author SHA1 Message Date
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
Andrey Breslav 344a57f2d5 isComputed() supported for lazy values 2013-10-03 15:49:19 +04:00
Andrey Breslav 7dfe1f963d Support returning default values on subsequent calls after recursion detection 2013-10-03 15:49:19 +04:00
Andrey Breslav e13063017a Exception class moved 2013-10-03 15:49:19 +04:00
Andrey Breslav 9bb77b09a3 Lazy values unified in the project 2013-10-03 15:49:19 +04:00
Andrey Breslav 9064cbd664 Support not null lazy value with default on reentry 2013-10-03 15:49:18 +04:00
Andrey Breslav f987efc510 isComputed() supported in simple lazy values 2013-10-03 15:49:18 +04:00
Andrey Breslav 36ce914613 Support recursion detection in lazy values 2013-10-03 15:49:18 +04:00
Andrey Breslav 98dc11bd1b Support recording exceptions in lazy values 2013-10-03 15:49:18 +04:00
Andrey Breslav 38437a1c25 Encoding changed for non-blocking lazy values 2013-10-03 15:49:18 +04:00
Andrey Breslav 13aa3b4e6f Unused classes removed 2013-10-03 15:49:18 +04:00
Andrey Breslav f3cd83c744 All storage-related code moved to util.runtime 2013-10-03 15:49:18 +04:00
Andrey Breslav 48605074aa Lazy values: change encoding, now NOT_COMPUTED is an explicit object, and null is stored as such 2013-10-03 15:49:17 +04:00
Alexander Udalov 43596f7450 Move utilities from 'frontend' to 'util'
They're also used in 'serialization'
2013-09-18 17:21:12 +04:00
Alexander Udalov 8e59e789dc Extract util.runtime module out of util
Cleanup module dependencies: a lot of modules depended on 'frontend.java' just
to use something from 'util' module, exported by 'frontend.java', whereas they
really need nothing from 'frontend.java'. Also 'frontend.java' just exported
'util', not using anything from it.

Create a new 'util.runtime' module, which will be available at runtime. Make
'util' export 'util.runtime' and make all modules who needed these utils depend
on 'util' directly instead of 'frontend.java'
2013-09-18 17:21:11 +04:00