Commit Graph

160 Commits

Author SHA1 Message Date
Valentin Kipyatkov 6cb6a907d7 Changed test output from line comments to block comments 2014-11-24 20:11:29 +03:00
Valentin Kipyatkov 0f59622a44 Checked that partial body resolve works for property delegating 2014-11-24 20:11:28 +03:00
Valentin Kipyatkov 0b56760910 Partial body resolve works for property accessor body 2014-11-24 20:11:27 +03:00
Valentin Kipyatkov 8ccf56415a Partial body resolve filter: fixed nested loops case 2014-11-24 20:11:27 +03:00
Valentin Kipyatkov cc84e9682b Partial body resolve: corrected it for explicit function type but unfortunately it does not work for non-explicit type yet 2014-11-24 20:11:27 +03:00
Valentin Kipyatkov 058af69078 Partial body resolve: added more tests 2014-11-24 20:11:27 +03:00
Valentin Kipyatkov 2f19713cc2 Partial body resolve: rewritten algorithm of filter building to ensure correct resolve of smart cast points (+ prepared to support more strict mode for resolve only) 2014-11-24 20:11:27 +03:00
Valentin Kipyatkov cd90ab951f Partial body resolve tests: more informative test output 2014-11-24 20:11:27 +03:00
Valentin Kipyatkov 4503adb7fc Partial body resolve filter: more correct lambda resolve for return 2014-11-24 20:11:26 +03:00
Valentin Kipyatkov 4ca8a3400e Added a test 2014-11-24 20:11:26 +03:00
Valentin Kipyatkov 166d580682 Partial body resolve: found group of cases incorrectly handled by the current implementation 2014-11-24 20:11:26 +03:00
Valentin Kipyatkov 6230ba7310 "casted" -> "cast" 2014-11-24 20:11:25 +03:00
Valentin Kipyatkov 8010c0f09d Partial body resolve works for local Nothing functions + does not go inside local functions and classes 2014-11-24 20:11:25 +03:00
Valentin Kipyatkov e5579bcf32 Partial body resolve: to take source Kotlin callables with Nothing type from caches 2014-11-24 20:11:25 +03:00
Valentin Kipyatkov 992cdd9fe2 Partial body resolve: processing of standard "error" function 2014-11-24 20:11:25 +03:00
Valentin Kipyatkov ca8d45259b Partial body resolve: added a test to fail if smart-casts will become too clever 2014-11-24 20:11:25 +03:00
Valentin Kipyatkov e7ba59b209 Partial body resolve: correct handing of this qualifier 2014-11-24 20:11:24 +03:00
Valentin Kipyatkov f56d89c487 Partial body resolve: don't be confused by exits after ?: 2014-11-24 20:11:24 +03:00
Valentin Kipyatkov e724af4b4e Partial body resolve: more efficient handling if-statements 2014-11-24 20:11:24 +03:00
Valentin Kipyatkov 0a7d73ef6b Partial body resolve: more efficient handling of loops 2014-11-24 20:11:24 +03:00
Valentin Kipyatkov 806bf3b942 Partial body resolve: more efficient handling of while 2014-11-24 20:11:24 +03:00
Valentin Kipyatkov 38c73f8df4 Partial body resolve: added test for do-while 2014-11-24 20:11:24 +03:00
Valentin Kipyatkov a89c07924d Partial body resolve: fixed bug 2014-11-24 20:11:24 +03:00
Valentin Kipyatkov e6acc5601c Partial body resolve: more efficient for-loop handling 2014-11-24 20:11:23 +03:00
Valentin Kipyatkov 5283b92269 Partial body resolve: more precise smart casts analysis for if-statement 2014-11-24 20:11:23 +03:00
Valentin Kipyatkov a675b5ba38 Basic implementation of partial body resolve 2014-11-24 20:11:23 +03:00
Nikolay Krasko 95a2dce627 Remove warning and add tests when this warning had been reproducible 2014-11-11 17:33:12 +03:00
Alexander Udalov 685a1c38e2 Fix indent in built-in sources 2014-10-27 17:17:26 +03:00
Pavel V. Talanov 95302fd540 Fix not generating KotlinLightField for OBJECT$ and INSTANCE$ fields
Fix navigation from Java to such fields
Fix TODO in converter
2014-10-03 21:35:06 +04:00
Pavel V. Talanov b2ec5e1ec4 Test reference resolve from Java to Kotlin
Cases cover the most basic features
Sadly it was missing before
2014-10-03 21:35:00 +04:00
Alexander Udalov 04bb43e907 Fix navigation to data class copy function 2014-09-19 11:45:22 +04:00
Zalim Bashorov 48de3b706d Frontend: added the support file annotations to LazyTopDownAnalyzer. 2014-09-10 22:39:12 +04:00
Alexander Udalov 25bb220223 Fix navigation on values()/valueOf() of enum classes 2014-09-09 20:42:39 +04:00
Svetlana Isakova 9d366cb896 Prohibit local objects and enum classes
#KT-5402 Fixed
  #KT-4838 Fixed

Resolve type of object inside local object as special, not supertype('Any').
Changed visibility of constructor of anonymous object to 'internal' to be able to resolve the following:
fun box(): String {
    var foo = object {
        val bar = object {
            val baz = "ok"
        }
    }
    return foo.bar.baz
}
The containing declaration of property initializers is constructor, so 'baz' was invisible inside private constructor.
2014-09-01 12:32:52 +04:00
Pavel V. Talanov db5303c019 Implement modules in IDE
IDE:
Rewrite AnalyzerFacade and implementations for JS and JVM to support creating separate analyzers for each module
Introduce ModuleInfo which is an intermediate entity between configuration (tests or idea modules) and ModuleDescriptor
Implement IdeaModuleInfos which represent IDEA modules, sdks and libraries
Add (somewhat thin) test checking their behaviour
Implement getModuleInfo() - utility to obtain IdeaModuleInfo for PsiElement
Drop Project.getLazyResolveSession() - not possible to obtain resolve session for the whole project any more
Adjust JavaResolveExtension accordingly
KotlinSignature Intention/Marker - make sure that analyzed element is cls element (he's not in resolve scope otherwise)

LightClasses:
Create separate package light classes for each module
Java code can only reference light class from the first module among it's dependencies
Duplicate jvm signature is only reported on package declarations inside one module

Injectors:
Receive GlobalSearchScope as paramer for VirtualFileFinder and JavaClassFinder
which allows to narrow analyzer scope

JDR:
Introduce ModuleClassResolver resolves java classes in correct java descriptor resolver (corresponding ModuleDescriptor)
Add test checking that java classes belong to correct module

Debugger:
Provide context to analyze files created by debugger in

Converter:
Postprocessor now needs a context to analyze resulting code in

JetPsiFactory:
Add verification that files created by psi factory are not analyzed without context (that is almost never a good idea)

Other:
Use new API in various tests, utilities, run configuration producers and builtin serializers
Various "TODO: (module refactoring)" which mark the unfinished parts
2014-08-22 22:58:54 +04:00
Alexander Udalov cdbdfaf182 Make Pair and Triple data classes 2014-07-25 21:19:38 +04:00
Pavel V. Talanov 8523e18afc Set source elements for java annotation parameters 2014-07-09 18:19:40 +04:00
Pavel V. Talanov 930ea88e25 Set source elements for java enum entries
#KT-4277 Fixed
2014-07-09 18:19:39 +04:00
Pavel V. Talanov 4188bbe53c Set source elements for java parameters 2014-07-09 18:19:38 +04:00
Pavel V. Talanov 6f2ed9a5a9 Add JetMultiDeclarationReference
A reference to component* functions
2014-03-06 16:01:02 +04:00
Pavel V. Talanov 80bc7b286a Test for reference to nested class in library 2014-03-04 21:19:55 +04:00
Alexander Udalov f7b6457139 Replace "jet" package name with "kotlin" in testData 2014-03-02 19:55:26 +04:00
Alexander Udalov 11cc7f46f4 Remove "Iterator.iterator()" intrinsic, add stdlib function 2014-03-02 19:55:24 +04:00
Alexander Udalov 3dcd85bdb4 Add toString() to Any, fix all tests
#KT-4517 Fixed
2014-03-02 19:54:49 +04:00
Alexander Udalov ec30d52978 Delete Hashable, pull up its members to Any
Extensions on nullable types remain in Library.kt

 #KT-1741 Obsolete
 #KT-2805 Obsolete
 #KT-1365 Fixed
 #KT-4517 In Progress
2014-03-02 19:54:08 +04:00
Zalim Bashorov 559ea28a6b Dropped extra caret markers and introduced separate marker for referencing from context. 2014-02-24 20:27:20 +04:00
Nikolay Krasko 558fca5eab Check reference to Java root class from library 2014-02-20 16:08:04 +04:00
Pavel V. Talanov 4a3ccc4eac JDR: do not create package fragment for class statics if class cannot be resolved
This keeps behaviour consistent in rare cases when JavaClass can be found but not resolved
As of now this can happen in IDE if we take PsiClass from index but file structure is wrong so we can't resolve the class
Add test which documents this case
2014-02-11 17:17:34 +04:00
Nikolay Krasko e46c19b3f8 Test for correct references to java classes 2014-02-06 15:52:02 +04:00
Nikolay Krasko e36c0130a0 Test for reference to kotlin compiled inner class 2014-02-06 15:52:01 +04:00