Commit Graph

294 Commits

Author SHA1 Message Date
Andrey Breslav 8e5ea77a72 setName() makes no sense for package classes 2013-01-14 20:20:23 +04:00
Andrey Breslav 59c94732a7 Light class support for nested classes 2013-01-14 20:20:23 +04:00
Andrey Breslav a577ccabab Light class providers unified 2013-01-14 20:20:22 +04:00
Andrey Breslav bf4fbe4aff Utility method moved to util class 2013-01-14 20:20:22 +04:00
Andrey Breslav 207f8e7c47 Cleanup 2013-01-14 20:20:22 +04:00
Andrey Breslav 689092da08 Nested class moved out 2013-01-14 20:20:21 +04:00
Andrey Breslav f929a7f5a9 Cleanup 2013-01-14 20:20:21 +04:00
Andrey Breslav 69080b72af When generating light class for package, do not generate other classes 2013-01-14 20:20:21 +04:00
Andrey Breslav a91b113cc3 GenerationStrategy is now a strategy 2013-01-14 20:20:20 +04:00
Andrey Breslav 5d4e4707ca Prototype implementation of KotlinLightClassForPackage 2013-01-14 20:20:20 +04:00
Andrey Breslav 0fddc92a64 Passing virtual file instead of whole JetLightClass 2013-01-14 20:20:19 +04:00
Andrey Breslav 034cd8844e Provide context for multiple files 2013-01-14 20:20:19 +04:00
Andrey Breslav 6dd60ac8b0 Utility method moved to util class 2013-01-14 20:20:19 +04:00
Andrey Breslav f34dd7b1b9 Removing code that is no longer used 2013-01-14 20:20:16 +04:00
Andrey Breslav abbaa51a91 Using indexes to find subpackages 2013-01-14 20:20:16 +04:00
Andrey Breslav 29dd3821cc Using indexes to find packages
JetLightPackage does not depend on PSI elements any more
2013-01-14 20:20:15 +04:00
Andrey Breslav 83075d0ad2 Using indexes for getClassNames() 2013-01-14 20:20:14 +04:00
Andrey Breslav d437787c3d JavaElementFinder uses indexes for findClasses() 2013-01-14 20:20:14 +04:00
Andrey Breslav 5f3fc5190f LightClassGenerationSupport helps finding class and package declarations 2013-01-14 20:20:12 +04:00
Andrey Breslav 330953782f Old hack removed 2013-01-14 20:20:12 +04:00
Andrey Breslav 2c3a955074 Retrieve JavaElementFinder from Project's extensions 2013-01-14 20:20:10 +04:00
Andrey Breslav 7c4d1e6b09 KotlinCacheManager and LightClassGenerationSupport services added 2013-01-14 20:20:09 +04:00
Andrey Breslav b5aa44ae49 GenerationState is constructed with BindingContext, not full AnalyzeExhaust 2013-01-14 15:19:50 +04:00
Andrey Breslav 39b6c53ef3 Local variable renamed 2013-01-14 15:19:50 +04:00
Evgeny Gerashchenko e03eaf6dde Removed @author javadocs from code. 2012-12-28 17:44:31 +04:00
Evgeny Gerashchenko 6c6abab033 Supported propagation for Java subclass of Kotlin class. 2012-12-07 14:41:58 +04:00
Alexander Udalov e2809b8080 Revert changes introduced in a31b7480
JavaElementFinder is no longer needed to find namespace$src$ classes
2012-10-25 21:42:09 +04:00
Alexander Udalov a8798de8d0 NamespaceCodegen.getNamespacePartInternalName()
Should be used instead of getMultiFileNamespaceInternalName()
2012-10-25 21:28:42 +04:00
Andrey Breslav 7719df1002 Properly detect Kotlin built-ins:
Built-in classes like jet.Int and jet.Iterable are loaded from source
files by KotlinBuiltIns class. It makes no sense to create JetLightClass
instances for such classes, moreover, it causes runtime failures.
Now we check the location a file was loaded from before creating a light
class, and skip if it is a built-in.

We also assert this in teh actual generation of light class bodies, and
print out OS information if something fails, because our detection strategy
may depend on OS-specific behavior.
2012-10-18 19:57:18 +04:00
Andrey Breslav 937c4e8baf BuiltinsScopeExtensionMode not needed any more
(see the changes in DefaultModuleConfiguration.java)
2012-10-17 13:48:07 +04:00
Andrey Breslav c719ae427a JetStandardClasses -> KotlinBuiltIns 2012-10-17 13:48:05 +04:00
Alexander Udalov a31b748092 JavaElementFinder now correctly finds namespace$src$ classes
No new tests added

 #KT-2839 Fixed
2012-10-10 18:11:11 +04:00
Nikolay Krasko 15a66dccef Move anonymous class to separate file 2012-09-27 18:52:59 +04:00
Nikolay Krasko 86d8be76cb EA-39162 Exception while trying to wrap method with default parameters 2012-09-27 18:52:58 +04:00
Nikolay Krasko 24dc31bd9a More information about errors in wrapping functions 2012-09-27 18:52:57 +04:00
Alex Tkachman bc1a4a1fe9 massive refactoring of CodegenUtil
- generation method names standartized on genXXX
- many methods moved to newly created AsmUtil
- some methods moved to CodegenContext
- got rid of almost trivial StubCodegen
2012-09-20 20:19:26 +03:00
Alex Tkachman cf92603f2a micro refactoring
- PsiCodegenPredictor moved to binding package
- CodegenUtil.findSuperCall method moved to CodegenBinding
= PsiCodegenPredictor unneeded bindingTrace parameter replaced by bindingContext
2012-09-13 08:33:07 +03:00
Nikolay Krasko b6e2381861 EA-36473 Wrap method for JetLightClass with invalid fq name 2012-09-11 21:29:42 +04:00
Alexander Udalov bb92655ecd Prohibit creation of JetLightClass on built-ins
If we allow JetLightClass to be created on built-in types, a normal codegen
would be launched, with a mapping from Kotlin to Java types enabled, every time
IDE requests built-in classes. Codegen would then try to make something
meaningless, e.g. create a class for a primitive type (since our jet.Boolean is
mapped to primitive boolean). This would result in different exceptions when
navigating to built-in library from IDE.

Add a helpful error message to ClassFileFactory if we ever again produce
classes for primitive types.
2012-09-11 17:08:33 +04:00
Alex Tkachman b45f19c0e2 GenerationState refactored to be (almost) immutable and methodless (modulo little protection from reuse)
GenerationStrategy introduced to handle separately cases of regular compilation and building of JetLightClasses (this was only real overridable behavior of GenerationState in old code)
state subpackage introduced
2012-08-30 09:33:10 +03:00
Alex Tkachman 8840a9bdd8 some static methods moved from JetTypeMapper to CodegenUtil & CodegenBinding 2012-08-29 14:30:44 +03:00
Nikolay Krasko 22794cbf64 Fix for EA-38626 - can't find class delegate for JetLightClass constructed for kotlin enum entry. 2012-08-28 19:32:46 +04:00
Andrey Breslav 08bb390820 Project is available in codegen 2012-08-24 12:18:18 +04:00
Nikolay Krasko 57d4a28a94 Remove duplicates and speeding-up PluginJetFilesProvider.allInScope 2012-08-23 15:53:41 +04:00
Nikolay Krasko 84a6c63d07 Remove some unused methods from QualifiedNamesUtil 2012-08-14 19:31:21 +04:00
Nikolay Krasko b5357d8738 Compile against 122.29 idea eap 2012-08-14 13:19:08 +04:00
Evgeny Gerashchenko 67304c64ff Removed unused myProject field from IntrinsicMethods. Removed from injector parameters, etc. 2012-08-09 15:13:42 +04:00
Nikolay Krasko 8d6b16eb23 Equals for JetLightClass 2012-08-08 15:23:40 +04:00
Andrey Breslav 5f3643804c Import directives migrated from ASM 3.3 to 4.0 with renamed packages 2012-07-25 12:07:19 +04:00
Evgeny Gerashchenko 6e7d08b478 Introduced BuiltinsScopeExtensionMode enum. Using it instead of CompilerSpecialMode to create JavaBridgeConfiguration. 2012-07-07 23:07:18 +04:00