Commit Graph

3045 Commits

Author SHA1 Message Date
Andrey Breslav fb0713d1c2 Do not inject TopDownAnalysisParameters into TopDownAnalyzer 2014-02-24 16:40:05 +04:00
Andrey Breslav 4e0df6fd80 Do not create TopDownAnalysisContext in injectors 2014-02-24 15:52:57 +04:00
Andrey Breslav f5d2e1f7aa Do not inject TopDownAnalysisContext into TypeHierarchyResolver 2014-02-24 15:52:56 +04:00
Andrey Breslav 8b88cc8aec Do not inject TopDownAnalysisContext into OverrideResolver 2014-02-24 15:52:55 +04:00
Andrey Breslav 1abaa9ff20 Do not inject TopDownAnalysisContext into OverloadResolver 2014-02-24 15:52:55 +04:00
Andrey Breslav 25e533a42d Do not inject TopDownAnalysisContext into ScriptHeaderResolver 2014-02-24 15:52:55 +04:00
Andrey Breslav 7e43f2e61e Do not inject TopDownAnalysisContext into ImportsResolver 2014-02-24 15:52:54 +04:00
Andrey Breslav 72a62626df Do not inject TopDownAnalysisContext into DeclarationResolver 2014-02-24 15:52:54 +04:00
Andrey Breslav e3744cff7c Do not inject TopDownAnalysisContext into ScriptBodyResolver 2014-02-24 15:52:54 +04:00
Andrey Breslav 5976a91998 Do not inject TopDownAnalysisContext into TopDownAnalyzer 2014-02-24 15:52:53 +04:00
Andrey Breslav f32d8b1d06 Do not inject BodiesResolveContext into BodyResolver 2014-02-24 15:52:53 +04:00
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
Nikolay Krasko a2c567da93 Common injector for lazy resolve with java lazy resolve 2014-02-20 16:31:22 +04:00
Nikolay Krasko 2ef879ea3e Search classes by qualified name only in sources to prevent recursion 2014-02-20 16:31:21 +04:00
Nikolay Krasko 064612f0f3 Add cache delegating to lazy resolve session for source classes search 2014-02-20 16:31:10 +04:00
Nikolay Krasko 0448736a4c Refactoring: remove unused methods 2014-02-20 16:27:49 +04:00
Nikolay Krasko 8eb2a937e6 Remove external packages search from file base declaration provider
External package should be found because of proper module configuration
2014-02-20 16:08:05 +04:00
Andrey Breslav 5478204e2d PlatformToKotlinClassMap can be obtained from the module 2014-02-18 19:51:49 +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
Pavel V. Talanov cd6a71ef81 Refactor JDR: add explicit binding between java classes and packages for their statics
Get rid of Kind in JavaPackageFragmentDescriptor and create subclass which exposes additional function
Add method in JavaClassDescriptor to get correponding package fragment
Remove JavaDescriptorResolver from context
2014-02-11 17:17:04 +04:00
Pavel V. Talanov 2fe2a50b14 Refactor JDR: use JavaResolverCache in LazyJavaPackageFragmentProvider directly
Remove LazyJavaClassResolverWithCache
This actually can affect behaviour because JavaResolverCache has slightly different logic (uses CLASS key in BindingContext as opposed to FQNAME_TO_CLASS_DESCRIPTOR)
2014-02-11 17:17:01 +04:00
Pavel V. Talanov 18d088cb71 Refactor JDR: create LazyJavaPackageFragmentProvider in injector 2014-02-11 17:17:00 +04:00
Andrey Breslav aa0dde3a78 Old implementation of JavaDescriptorResolver deleted 2014-02-05 18:12:01 +04:00
Andrey Breslav 9f918d48b5 JavaDescriptorResolver always uses lazy mode 2014-02-05 18:12:01 +04:00
Andrey Breslav 3d1f2c25e2 resolveCompileTimeConstantValue() rewritten to Kotlin 2014-02-05 18:07:35 +04:00
Andrey Breslav 6aca05023a OBJECT_FQ_NAME moved to DescriptorResolverUtils 2014-02-05 18:07:35 +04:00
Andrey Breslav ab3b8d63df ExternalAnnotationResolver is enough to look for external annotations 2014-02-05 18:07:35 +04:00
Andrey Breslav 30f49f3c9a Invalidate per-file cache on exceptions 2014-02-04 15:24:27 +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 364182e3f0 Unneeded public parameters made private 2014-02-04 15:23:15 +04:00
Nikolay Krasko f526129ca4 Refactoring: use injector for creating lazy resolve session 2014-02-04 12:31:38 +04:00
Nikolay Krasko 45be6b081d Minor: add public modifier 2014-02-04 12:31:36 +04:00
Alexander Udalov 877d9f2220 Update year to 2014 in generated files 2014-01-31 16:46:16 +04:00
Nikolay Krasko 7546a6dc41 Suppressing warnings + update copyright date 2014-01-31 14:52:13 +04:00
Andrey Breslav 7a6657d2e8 Resolve sessions use exception tracking from StorageManager 2014-01-30 21:03:53 +04:00
Andrey Breslav 26ecf7666d Wrap storage manager inside resolve session 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 6a29c38e5b Components across the project use StorageManager 2014-01-29 15:38:44 +04:00
Natalia Ukhorskaya e6e64c0098 Rename class 2014-01-28 18:21:48 +04:00
Natalia Ukhorskaya 3f429116e5 Add constructor parameter for compileTimeConstant (can be used in annotation) 2014-01-28 18:21:44 +04:00
Alexander Udalov d88f76f438 Rewrite Progression, Range, Unit to Kotlin
Delete useless (by now) AssertInvisibleInResolver
2014-01-27 18:33:47 +04:00
Zalim Bashorov d032b5589c Frontend: fixed resolve annotation parameters on properties, accessors, accessor parameters, function parameters when not need complete analysis. 2014-01-27 15:34:55 +04:00
Alexey Sedunov 9eac148555 Extract base interface for Kotlin light elements 2014-01-24 13:10:28 +04:00
Alexey Sedunov 5b2858ef26 Generate light type parameters for Kotlin light methods 2014-01-24 13:10:27 +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 1af71c4dbe Using common storage manager for all lazy services 2014-01-20 16:17:53 +04:00
Andrey Breslav df88e3e625 Introducing dependency kinds to prioritize package fragments 2014-01-15 16:16:21 +04:00