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