564 Commits

Author SHA1 Message Date
Michael Bogdanov 43af127ce8 new fixes 2015-09-07 16:28:52 +03:00
Michael Bogdanov ebb1629285 new scope and deserialization 2015-09-07 16:28:49 +03:00
Yan Zhulanow add13cae82 lateinit modifier on property 2015-09-05 00:54:18 +03:00
Denis Zharkov 4159c83282 Support decapitilized obsolete annotations in resolve
Annotations like `deprecated`, `jvmStatic`, etc. has been renamed to capitilized themselves.
But we're going to support both versions.
It's hard just to leave both versions of classes as their class-files can clash
when compiled on register-independent file system.

So here is solution (temporary hack):
we just wrap JetScopes for package fragments of `kotlin.*`
to make them search both versions of annotations if their names are contained
in our hardcoded set.
2015-09-04 18:19:32 +03:00
Alexander Udalov df935f5bb7 Support reflection on lambdas and function expressions
Write a special annotation containing the bytes for the Callable protobuf
message and deserialize it at runtime properly

 #KT-9005 Fixed
2015-09-03 21:43:58 +03:00
Yan Zhulanow e7703df0b6 Use a single AnnotatedCallableKind enum item for property 2015-08-31 15:33:14 +03:00
Yan Zhulanow 3624c4e5dc Use target priorities to split annotations to different descriptors 2015-08-31 15:33:05 +03:00
Yan Zhulanow 1b9dab47ec Deserialize property and field annotations 2015-08-31 15:33:03 +03:00
Yan Zhulanow 4ead50352d Put @receiver-targeted annotations on receiver type 2015-08-31 15:33:01 +03:00
Yan Zhulanow 08c678ef46 Deserialize receiver parameter annotations for extension functions 2015-08-31 15:32:55 +03:00
Yan Zhulanow 2bacbc9046 Support @field: annotations 2015-08-31 15:05:02 +03:00
Zalim Bashorov 3c2762dd1d Don't track lookups for JetScope::getDescriptors (and JetScope::getAllDescriptors) 2015-08-24 19:50:05 +03:00
Zalim Bashorov 6a3200764f Don't try to record lookups which already tracked 2015-08-24 19:50:05 +03:00
Zalim Bashorov 0978e9f169 Minor: move LookupLocation to org.jetbrains.kotlin.incremental.components 2015-08-08 02:08:16 +03:00
Zalim Bashorov 2aa4c383cd UsageLocation -> LookupLocation 2015-08-08 02:08:15 +03:00
Alexander Udalov d7b1e5d7a8 Improve toReadOnlyList(), consider the case when size = 1 2015-08-07 23:01:26 +03:00
Alexey Tsvetkov 53eccb98e3 Save class file to deserialized descriptor 2015-08-06 19:31:06 +03:00
Alexey Tsvetkov 0688afbb0c Introduce ClassDataProvider 2015-08-06 19:31:06 +03:00
Denis Zharkov 32c23728b3 Implement raw types (de)serialization via special TypeCapabilities 2015-08-06 08:18:18 +03:00
Denis Zharkov 4563f4b1f9 Minor. Pull computeMemberScope to AbstractLazyType 2015-08-06 08:18:17 +03:00
Denis Zharkov 37420527f2 Add substitution concept into JetType
In most cases it's just a map { Parameter_i => Argument_i }
Will be used when loading Raw types from Java.

Also add ClassDescriptor.getMemberScope by substitution.
2015-07-31 17:33:21 +03:00
Denis Zharkov 465ed9973f Minor. Make DeserializedType subclass of AbstractLazyType 2015-07-31 17:33:21 +03:00
Alexander Udalov 98b057f495 Don't look for classes with empty or special name in deserialized scope
Fix EA-59962, EA-64281, EA-65698. No new tests added because the only repro
reported as KT-8187 now fails with another (much more understandable though)
exception

 #KT-8187 Open
2015-07-29 23:44:21 +03:00
Alexander Udalov d0562b7b90 Add SourceElement to AnnotationDescriptor
Use KotlinSourceElement in the compiler for annotations resolved from PSI,
introduce ReflectAnnotationSource for reflection
2015-07-29 23:44:18 +03:00
Alexander Udalov 81ef1c19d8 Support KClass.constructors in reflection 2015-07-29 21:36:37 +03:00
Michael Nedzelsky e9d7bbf493 fix KT-8648 Exception from incremental compilation
#KT-8648 Fixed
2015-07-29 15:14:45 +03:00
Michael Nedzelsky 2e18b3de9d prepare to retire Type.Constructor message in descriptors.proto after M13 2015-07-28 19:49:00 +03:00
Michael Nedzelsky 459eed7d28 introduce custom options for messages in proto files 2015-07-28 19:48:44 +03:00
Michael Nedzelsky f91f957703 add a copy of descriptor.proto file from protobuf installation 2015-07-28 19:48:41 +03:00
Michael Nedzelsky ef8381f8af two optional fields have been added to Type.Constructor message in descriptors.proto in preparation to remove field which requires double interpetation 2015-07-28 19:48:37 +03:00
Zalim Bashorov 41449c107e Location.NOWHERE -> UsageLocation.NO_LOCATION 2015-07-21 22:27:25 +03:00
Zalim Bashorov e2e3520c3d Add location parameter to JetScope::getClassifier 2015-07-21 22:27:25 +03:00
Zalim Bashorov 0f92036353 Add location parameter to JetScope::getFunctions 2015-07-21 22:27:25 +03:00
Zalim Bashorov f79155df97 Add location parameter to JetScope::getProperties 2015-07-21 22:27:24 +03:00
Dmitry Jemerov aa1f6f2252 code cleanup: core modules 2015-07-21 16:21:45 +02:00
Ilya Ryzhenkov 84236992cb Replace Injected properties with constructor parameters when it doesn't cause cycles 2015-07-20 20:58:19 +03:00
Valentin Kipyatkov 17442617bb Synthetic extensions suggested in completion 2015-07-16 13:49:13 +03:00
Valentin Kipyatkov c92b43c94b Added JetScope.getSyntheticExtensionProperties() 2015-07-16 13:49:13 +03:00
Pavel V. Talanov c313887641 Split CompileTimeConstant into two entities
1. ConstantValue
	* just holds some value and its type
	* implementations for concrete constants
2. CompileTimeConstant
	* is only produced by ConstantExpressionEvaluator
	* has additional flags (canBeUsedInAnnotation etc)
	* has two implementations TypedCompileTimeConstant containing a constant value
		and IntegerValueConstant which does not have exact type
	* can be converted to ConstantValue

Adjustt usages to use ConstantValue if flags are not needed
Add tests for some uncovered cases
2015-07-16 02:28:05 +03:00
Pavel V. Talanov 5dc5d77e60 Inject builtins in constants 2015-07-15 21:09:52 +03:00
Pavel V. Talanov ea1a85e78c Introduce CompileTimeConstantFactory 2015-07-15 21:09:40 +03:00
Pavel V. Talanov b0a4520710 Refactor compile constants to reduce boolean parameter hell 2015-07-15 20:57:02 +03:00
Pavel V. Talanov f97767e159 Drop ArrayValue redundant constructor parameter 2015-07-15 20:56:55 +03:00
Valentin Kipyatkov d32ba08cb7 KT-8394 ReplaceWith for Delegates.lazy fails outside of stdlib
#KT-8394 Fixed
2015-07-13 19:41:42 +03:00
Alexander Udalov 9b832d4b87 Container of value parameter is always a callable 2015-07-10 20:10:12 +03:00
Denis Zharkov 0a19fb7df2 Make project compilable after types enhancement 2015-07-09 16:36:46 +03:00
Andrey Breslav 2de3a3b59e Minor. Rename addToScope -> addFakeOverride 2015-07-09 16:32:24 +03:00
Alexander Udalov b0e963bf34 Binary metadata: make repeated int fields packed
To save some bytes for enums and classes with many nested classes
2015-07-06 16:19:55 +03:00
Alexander Udalov c8439ae6fc Minor, rename val EXTENSION_REGISTRY -> extensionRegistry 2015-07-03 15:32:16 +03:00
Alexander Udalov 110d6fa7f1 Don't load irrelevant classes by accident, if resource happens to exist
Check with the containing class or package first, don't load the class if the
container doesn't know about it. This also makes the workaround for
case-insensitive file systems unnecessary
2015-07-03 15:31:48 +03:00