Commit Graph

12263 Commits

Author SHA1 Message Date
Alexander Udalov 01e46bbd11 Move caching logic from java class scope to descriptor 2013-10-04 01:03:34 +04:00
Nikolay Krasko d0e4245112 Add test for enum highlighting 2013-10-03 23:35:54 +04:00
Nikolay Krasko b09ef86eab Print file text with placed textAttributesKey to avoid adding them manually 2013-10-03 23:35:54 +04:00
Nikolay Krasko f09ba64234 Refactoring: Use generators for highlighting tests
- Store options for test in file
- Change default for namesHighlightingTest
- Combine highlighting and deprecated tests
2013-10-03 23:35:53 +04:00
Nikolay Krasko 62be09df87 KT-4017 Syntax highlighting drops constantly for ~0.5s with every little change in the source
#KT-4017 Fixed
2013-10-03 23:35:52 +04:00
Nikolay Krasko 3fa2b990a6 Don't force out of block modification after exception in analyze, use special dependency 2013-10-03 23:35:52 +04:00
Nikolay Krasko 27ae5d0d64 Refactoring: Remove warnings 2013-10-03 23:35:51 +04:00
Nikolay Krasko 344ed3f606 Refactoring: Fix warnings 2013-10-03 23:35:50 +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 ee72479344 Thread-safe lazy values used in lazy resolve 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
Andrey Breslav 51dfdf795f Recursion-tolerant notnull lazy values 2013-10-03 15:49:17 +04:00
Andrey Breslav bbdff45246 Support recursion-tolerant nullable values
All other values are made recursion-intolerant
2013-10-03 15:49:17 +04:00
Natalia Ukhorskaya 9fea289585 Update KotlinMavenConfigurator.java
Update Maven version in Configurator
2013-10-03 04:01:08 -07:00
Zalim Bashorov 2b9b563efb JPS plugin: add support external compilation for JS modules. 2013-10-03 13:58:02 +04:00
Zalim Bashorov cfb7104ae9 JPS plugin: make the code more understandable -- added some comments and rename scriptFile to moduleFile. 2013-10-03 13:58:02 +04:00
Zalim Bashorov fc6b77366a JPS plugin: remove unnecessary method KotlinSourceFileCollector#hasDirtyFiles. 2013-10-03 13:48:38 +04:00
Natalia.Ukhorskaya b6f3baa485 Update sources when updating kotlin runtime 2013-10-03 13:02:38 +04:00
Evgeny Gerashchenko 3bb1d3854c Removed hack. 2013-10-02 18:29:14 +04:00
Alexander Udalov f68a702e8f Report ABI errors on KotlinClass, not VirtualFile 2013-10-02 17:55:02 +04:00
Alexander Udalov 1afd0504fa Make compiled package fragments not show up in completion, go-to, etc. 2013-10-02 17:55:02 +04:00
Alexander Udalov 3087c6f584 ReadDataFromAnnotationVisitor doesn't depend on ASM anymore 2013-10-02 17:07:37 +04:00
Alexander Udalov 8b63665b20 Delete getFqName() method from KotlinClassFileHeader
It's not related to the header. Add getClassName() method to
KotlinJvmBinaryClass, which reads the internal name of the class
2013-10-02 17:05:50 +04:00
Alexander Udalov a5a80a9ccc Change KotlinClassFileHeader loading interface
It should be able to load the header based on an abstract KotlinJvmBinaryClass,
not only the VirtualFile-based one
2013-10-02 17:05:50 +04:00
Alexander Udalov 2eebcd91c0 Make annotation deserializer not depend on VirtualFile & ASM
KotlinJvmBinaryClass now has its own visitor interfaces, which are an
abstraction over ASM visitors and the ones that will be implemented over
reflection
2013-10-02 17:05:50 +04:00
Alexander Udalov 7eff1292f0 Make an abstraction over VirtualFileFinder
Java descriptor loader now can work with KotlinClassFinder, which finds
abstract KotlinJvmBinaryClass'es: they are based on VirtualFile in the
compiler/IDE and will be based on j.l.Class in the reflection
2013-10-02 17:05:50 +04:00
Alexander Udalov c5bed7a246 Remove hack from AnnotationDescriptorDeserializer
Now that package fragment classes are generated to "*Package-filename-hash", we
can use virtualFileFinder to find such classes by FQ name. Support
KotlinPackageFragment annotation, by which VirtualFileFinder will determine
that a class was compiled by Kotlin compiler
2013-10-02 17:05:49 +04:00
Alexander Udalov fdc631d595 Increase ABI version after changes to package fragment names 2013-10-02 17:05:47 +04:00
Alexander Udalov 8a5336aca2 Don't use $ in package fragment class names
Package fragment classes now are named "*Package-<filename>-<hash>" instead of
"*Package$src$<filename>$<hash>". This will help to avoid erroneous code in
intellij FileManager, which assumes that classes with dollars are always inner
classes of some other class (see AnnotationDescriptorDeserializer)
2013-10-02 17:03:24 +04:00
Alexander Udalov fc4e13f573 SerializedDataHeader now always has valid annotationData
This helps to avoid errors of checking 'instanceof SerializedDataHeader' but
forgetting to check if it 'isCompatibleKotlinCompiledFile'
2013-10-02 02:14:51 +04:00
Evgeny Gerashchenko eebe605771 Fixed tests on android (file names escaping). 2013-10-01 22:18:03 +04:00