Commit Graph

51 Commits

Author SHA1 Message Date
Alexander Udalov 7742fb52e6 Minor, move builtins-serializer sources to correct package 2015-03-30 19:44:21 +03:00
Alexander Udalov d09e0e73fa Rename NameSerializationUtil, move serialization-related code there 2015-03-30 17:22:07 +03:00
Alexander Udalov b57e15f3a4 Move utilities from NameSerializationUtil to meaningful places 2015-03-30 17:22:06 +03:00
Pavel V. Talanov b73bd697e6 Rename JetCoreEnvironment -> KotlinCoreEnvironemnt 2015-03-30 15:11:58 +03:00
Pavel V. Talanov 5cb431c5c4 Convert JetCoreEnvironment: migrate other code 2015-03-30 15:11:57 +03:00
Michael Nedzelsky 930ecb9cf9 move BuiltInsSerializerExtension from builtins-serializer to serialization module 2015-03-18 09:38:25 +03:00
Pavel V. Talanov 945072a129 Drop DeserializedResolverUtils and it's usages 2015-02-16 15:38:41 +03:00
Pavel V. Talanov 0343fd8fc7 Rework class objects
Class objects have name "Default" by default
Do not produce synthetic class objects
Class objects have new semantics:
    class "A" has class object "B" if literal "A" can be used as a value of type "B"
Class objects act like ordinary nested objects
    i.e. are accessible from class scope via getClassifier()
Jvm backend: class object fields and class have the name of class object ("Default")
	as opposed to special "OBJECT$" and "object"
Serialization: only the name of class object is needed to serialize data
2015-02-16 15:38:27 +03:00
Michael Nedzelsky df8fed096c add support for compile time constant serialization 2015-02-03 14:41:24 +03:00
Alexander Udalov 5903b8c4a7 Reorder and optimize dependencies between modules and libraries
- drop 'kotlin-runtime' and other dependencies which are exported by
  other modules ('util' and 'util.runtime' in case of 'kotlin-runtime')
- make all Kotlin modules from the compiler depend on 'util' for clarity
- put 'util' and 'util.runtime' to the bottom of the list everywhere: when
  kotlin-runtime gets reflection, classes from core/ should have higher
  priority than their previous versions from kotlin-runtime.jar
2015-01-28 19:58:35 +03:00
Alexander Udalov 7d496377c4 Remove bootstrap workarounds 2015-01-12 15:40:15 +03:00
Alexander Udalov 63cefea6e9 Rename jet -> kotlin in frontend
org.jetbrains.jet -> org.jetbrains.kotlin

Also rename package slicedmap to slicedMap
2015-01-11 15:20:51 +03:00
Alexander Udalov 64c6055030 Rename jet -> kotlin in frontend, descriptors: resolve
org.jetbrains.jet.lang.resolve -> org.jetbrains.kotlin.resolve
2015-01-11 05:09:01 +03:00
Alexander Udalov 8affc31303 Rename jet -> kotlin in descriptor.loader.java, frontend.java
Split package 'lang/resolve/java' into two semantically different packages:
'resolve/jvm' and 'load/java'. Also rename 'lang/resolve/kotlin' to
'load/kotlin'
2015-01-11 05:08:57 +03:00
Alexander Udalov 524fdc2527 Rename jet -> kotlin in descriptors, types, names
org.jetbrains.jet.lang.descriptors -> org.jetbrains.kotlin.descriptors
org.jetbrains.jet.lang.types -> org.jetbrains.kotlin.types
org.jetbrains.jet.lang.resolve.name -> org.jetbrains.kotlin.name
2015-01-10 15:52:20 +03:00
Alexander Udalov e88f89d1c6 Rename jet -> kotlin in descriptors: built-ins
org.jetbrains.jet.lang.types.lang -> org.jetbrains.kotlin.builtins
2015-01-10 15:52:16 +03:00
Alexander Udalov 05eaf81ba6 Rename jet -> kotlin and regroup files in serialization
org.jetbrains.jet.descriptors.serialization ->
org.jetbrains.kotlin.serialization

Deserialization goes to subpackage deserialization, built-ins-related stuff
goes to subpackage builtins
2015-01-09 16:37:22 +03:00
Alexander Udalov f37e2f173d Rename package jet -> kotlin in util, util-runtime
org.jetbrains.jet.config -> org.jetbrains.kotlin.config
org.jetbrains.jet.utils -> org.jetbrains.kotlin.utils

Also move coreLib.kt to package 'org.jetbrains.kotlin.utils'
2015-01-08 23:32:08 +03:00
Alexander Udalov 8ca803775f Rename package jet -> kotlin in cli, cli-common
org.jetbrains.jet.cli -> org.jetbrains.kotlin.cli

Also fix some minor warnings
2015-01-08 23:32:07 +03:00
Alexander Udalov fbb7baa5db Minor, get rid of ClassSerializationUtil 2015-01-03 15:16:19 +03:00
Alexander Udalov 59c7171a21 Rename package jet -> kotlin in builtins-serializer
org.jetbrains.jet.utils.builtinsSerializer ->
org.jetbrains.kotlin.serialization.builtins
2015-01-03 15:16:18 +03:00
Alexander Udalov 6793464cd0 Drop obsolete code in built-in serialization 2014-12-19 14:41:51 +03:00
Alexander Udalov 63bfa004fd Introduce binary representation for annotations
Will be used where annotations can't be stored elsewhere: for example,
built-ins, JS, type annotations on JDK<8
2014-12-03 16:10:19 +03:00
Alexander Udalov 9a86318908 Introduce extension for built-ins serialization, drop .kotlin_class_names 2014-12-03 15:58:14 +03:00
Alexander Udalov 9bd815126b Rename NameTable -> StringTable in serialization
Since almost the beginning, it was also used to store arbitrary strings, not
just names
2014-12-03 15:58:13 +03:00
Zalim Bashorov e6b69e48d9 Minor: fix JetCoreEnvironment#(createForProduction, createForTests) call sites for JVM. 2014-12-01 15:27:33 +03:00
Alexander Udalov d1425c14ba Test built-ins serializer, untie built-ins from class loader resources 2014-11-28 15:39:03 +03:00
Alexander Udalov 1f68c94ce6 Fix several bugs in serialization of inner generic classes
- Interner was working incorrectly with parents
- nested classes were serialized in codegen out of any context

 #KT-5660 Fixed
2014-11-25 23:16:26 +03:00
Alexander Udalov 36c65e4264 Minor, drop strange method from SerializerExtension 2014-11-25 23:16:26 +03:00
Valentin Kipyatkov 5f5d2de5e0 Moved KindFilter and DescriptorKindExclude out of JetScope, moved constants as well and renamed them 2014-11-12 21:57:49 +03:00
Valentin Kipyatkov 95b3885aa5 Refactored filtering by descriptor kind so that no knowledge about SAM-constructors required in core 2014-11-12 21:25:02 +03:00
Valentin Kipyatkov 6f2da4930a Descriptor kind filter replaced with bit mask 2014-11-12 21:24:59 +03:00
Valentin Kipyatkov 43df891515 More precise descriptor kind filtering (preparing to optimize smart completion) 2014-11-12 21:24:59 +03:00
Valentin Kipyatkov 1983a9f3da Replaced usages of JetScope.getAllDescriptors() with JetScope.getDescriptors() (where makes sense) 2014-11-12 21:24:55 +03:00
Alexander Udalov 19497262b3 Don't lookup built-in classes by invalid names
#KT-5869 Fixed
2014-09-26 18:48:43 +04:00
Alexander Udalov bc1d59a538 Add KotlinClassFinder#findKotlinClass(ClassId)
Will be used to load nested classes correctly at runtime
2014-09-15 19:30:50 +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
Pavel V. Talanov 77416aba5f Add dependency on intellij-core explicitly
util module doesn't export intellij-core dependency
2014-08-22 13:09:08 +04:00
Alexander Udalov 3ffa7cdcf8 Minor optimization in KotlinBuiltIns.isSpecialClassWithNoSupertypes 2014-05-19 19:50:58 +04:00
Alexander Udalov d75a20bd7c Minor, fix warning 2014-03-28 21:56:04 +04:00
Evgeny Gerashchenko 9ecd680fd4 Rewritten PackageFragmentDescriptor to Kotlin. 2014-03-26 00:41:54 +04:00
Pavel V. Talanov a1dbf221b3 Use instance methods instead of JetPsiUtil for getting fq names
Remove unnecessary usages of JetFile#getPackageDirective where only FqName is needed
Make JetFile#getPackageFqName not nullable to avoid confusion on call sites
Remove getPackageName usages
Move getFqName(JetNamedDeclaration) to a separate util class
2014-03-24 17:51:49 +04:00
Ilya Ryzhenkov 552776f00b Output fixed for builtins serializer 2014-03-19 20:25:10 +04:00
Alexander Udalov bd80e325b3 Revert "Add a temporary hack for migration "jet" -> "kotlin""
This reverts commit fb12c56d1a.
2014-03-02 21:37:28 +04:00
Alexander Udalov 4117d04742 Don't use FileUtil in BuiltInsSerializer
See the comment
2014-02-21 20:49:12 +04:00
Nikolay Krasko a2c567da93 Common injector for lazy resolve with java lazy resolve 2014-02-20 16:31:22 +04:00
Alexander Udalov fb12c56d1a Add a temporary hack for migration "jet" -> "kotlin" 2014-02-20 02:40:44 +04:00
Alexander Udalov 304129f9c9 Check if the class is special by FQ name
This is needed because our built-ins can be loaded with two different
mechanisms (deserialization and lazy resolve) and, when that happens,
corresponding descriptors aren't equal to each other, so one of two resolved
descriptors for Any (or the same with Nothing) was never considered to be a
"special class" with no supertypes
2014-02-19 17:44:19 +04:00
Alexander Udalov cb2733a0ae Fix built-ins serializer to work with any packages
Make it serialize data for all packages found in sources and not only
KotlinBuiltIns.FQ_NAME, i.e. "jet". This is required to migrate built-ins from
package "jet" to "kotlin"
2014-02-09 04:17:35 +04:00
Alexander Udalov e46c54f514 Serialize built-ins on 'ant dist'
Don't store binary data in the repository anymore. From now on any test on the
compiler requires that 'ant dist' was executed at least once since the last
update of the built-ins
2014-01-27 18:33:49 +04:00