Dmitry Jemerov
084727c991
action to invoke a manual update check for the Kotlin plugin
2015-11-18 16:44:14 +01:00
Alexander Udalov
3e27fdb964
Inline and move out utilities from ConstraintSystem
2015-11-18 16:40:49 +03:00
Alexander Udalov
d4664af4e5
Get rid of originalToVariableSubstitutor and descriptorToVariable
...
Move the composite substitutor to GenericCandidateResolver where it was used,
other places don't need it since they know the exact call (or NO_CALL), the
substitutor for which should be used
2015-11-18 16:40:48 +03:00
Alexander Udalov
178ca3daae
Add call to type variable and mapping descriptor -> variable
...
Since type parameter descriptor represents a single declaration of a type
parameter, multiple variables in one system may correspond to one type
parameter (e.g. in case of nested calls). Hence it's not possible to map type
parameters uniquely onto type variables and additional information is required
2015-11-18 16:40:47 +03:00
Alexander Udalov
27ce61a3be
Always alpha-convert non-external type parameters before registering in system
2015-11-18 16:40:45 +03:00
Alexander Udalov
13abc265ad
First steps to make distinction between variables and descriptors in ConstraintSystem
...
A type variable is an entity, the value of which should be solved by the
system; a descriptor is an actual TypeParameterDescriptor declaration
2015-11-18 16:40:43 +03:00
Alexander Udalov
89dfd52363
Remove ConstraintSystem.partialSubstitutor, move logic to FuzzyType
2015-11-18 16:40:42 +03:00
Alexander Udalov
d72a4c8037
Cleanup constraint system, convert functions to properties, delete unused
2015-11-18 16:40:41 +03:00
Alexander Udalov
265c135e89
Rename ConstraintSystemImpl -> ConstraintSystemBuilderImpl
2015-11-18 16:40:40 +03:00
Alexander Udalov
bb918a2742
Move mutating methods of ConstraintSystem to Builder
...
Extract immutable ConstraintSystemSnapshot from ConstraintSystemImpl
2015-11-18 16:40:39 +03:00
Alexander Udalov
9149668286
Add ConstraintSystem#copy to minimize usages of ConstraintSystemImpl
2015-11-18 16:40:38 +03:00
Alexander Udalov
393852bf70
Simplify signature of ConstraintSystem#registerTypeVariables
...
Drop unused variance from TypeBounds and ConstraintSystem, provide default
values, inline methods used only once
2015-11-18 16:40:37 +03:00
Dmitry Petrov
99b411c8ca
companionObjectType --> classValueType
...
(NB: it IS NOT a companion object in case of OBJECT or ENUM_ENTRY)
Unify related names.
2015-11-18 16:27:26 +03:00
Dmitry Petrov
7b432c878a
Diagnostics improvements for corner cases
...
(class/package qualifier in non-qualifier position).
2015-11-18 16:27:21 +03:00
Dmitry Petrov
ba8372cc11
Fixes for IDE tests after qualifier modifications:
...
- CallType should look into QUALIFIER,
so that completion works for (companion) object qualifiers.
- Record type and reference target for object qualifiers (not only for companions).
- "Create (function/...)" should understand ClassQualifier as possible receiver.
- Cleanup after rebase on master.
2015-11-18 14:35:54 +03:00
Dmitry Petrov
9856af48ca
Drop createQualifier: testData update
2015-11-18 14:35:53 +03:00
Dmitry Petrov
49570ba1ea
Drop QualifierReceiver::resultingDescriptor. Use REFERENCE_TARGET.
2015-11-18 14:35:53 +03:00
Dmitry Petrov
3556f9751e
Reuse package/class qualifier prefix resolution for qualified expression resolution.
2015-11-18 14:35:52 +03:00
Dmitry Petrov
5ff2ffbccc
Move resolve* methods from Qualifier.kt to QualifiedExpressionResolver.
...
Further differentiate various qualifiers.
2015-11-18 14:35:52 +03:00
Dmitry Petrov
16dcc0b288
Introduce Receiver as a common superclass of QualifierReceiver and ReceiverValue.
...
QualifierRecevier is no longer a subclass of ReceiverValue.
2015-11-18 14:35:52 +03:00
Nikolay Krasko
2ff0b13808
Run psi check on light classes from compiled Kotlin
2015-11-18 13:34:25 +03:00
Dmitry Jemerov
0e1dff1c29
optimize PackageIndexUtil.packageExists() by using in-memory hash table instead of stub index lookup
2015-11-17 18:47:01 +01:00
Dmitry Jemerov
bf35099e0c
use "destructuring declarations" term instead of "multi-declarations"
2015-11-17 18:43:26 +01:00
Dmitry Jemerov
49db4e93c0
Merge branch 'KT-5115' of https://github.com/mcgee/kotlin into mcgee-KT-5115
2015-11-17 15:14:00 +01:00
Mikhail Glukhikh
657052e1d2
Rename: ClassReceiver ---> ImplicitClassReceiver, CastClassReceiver ---> CastImplicitClassReceiver
2015-11-17 13:02:22 +03:00
Mikhail Glukhikh
59e54d1db1
Rename: ThisReceiver ---> ImplicitReceiver
2015-11-17 13:02:16 +03:00
Mikhail Glukhikh
7ba297db81
ThisReceiver converted to Kotlin
2015-11-17 13:02:12 +03:00
Mikhail Glukhikh
f1034dbf19
Receiver refactoring in DataFlowValueFactory
2015-11-17 13:02:06 +03:00
Mikhail Glukhikh
96c303be60
Smart cast of value / implicit receiver: two different colors
2015-11-17 10:26:46 +03:00
Mikhail Glukhikh
811ba8110f
Implicit receiver smart casts implementation and highlighting
2015-11-17 10:26:42 +03:00
Mikhail Glukhikh
03287d5d66
Diagnostics corrected for smart cast impossible
2015-11-17 10:26:26 +03:00
Stanislav Erokhin
c7f7ba72b8
Moved logic for PRIVATE_TO_THIS visibility from ExpressionTypingUtils.normalizeReceiverValueForVisibility to ExpressionReceiver.create
2015-11-17 01:25:18 +03:00
Stanislav Erokhin
5a7e879c0c
Convert ExpressionReceiver to kotlin.
2015-11-17 01:25:17 +03:00
Stanislav Erokhin
1c9136a8cd
Minor. introduce method ExpressionReceiver.create and replace almost all usages of constructor ExpressionReceiver.
2015-11-17 01:25:15 +03:00
Valentin Kipyatkov
927df1c4cd
KT-5072 Values of extension function type are not seen in completion
...
#KT-5072 Fixed
2015-11-16 18:24:37 +03:00
Valentin Kipyatkov
2e2dfcb4a0
"invoke" from function types do not have any meaningful parameter names
2015-11-16 18:24:37 +03:00
Valentin Kipyatkov
5b668cb6a6
KT-9970 Regression: completion doesn't see private extension functions with parametrized receiver
...
#KT-9970 Fixed
2015-11-16 18:24:37 +03:00
Valentin Kipyatkov
6a26e2fd82
Sorting overloads in completion
2015-11-16 18:24:37 +03:00
Alexey Sedunov
ac8532ffce
Quick Fixes: Implement 'Initialize with constructor parameter' quick-fix
...
#KT-6604 Fixed
2015-11-16 11:30:03 +03:00
Alexey Sedunov
138370ce5b
Quick Fixes: Implement 'Move to constructor parameters' quick-fix
...
#KT-6604 In Progress
2015-11-16 11:30:02 +03:00
Alexey Sedunov
f66af7bdd4
Quick Fixes: Implement 'Initialize property' quick-fix
2015-11-16 11:30:00 +03:00
Alexey Sedunov
aeee8bafe6
Name Suggester: Suggest parameter name for the corresponding argument expression
...
#KT-8111 Fixed
2015-11-16 11:29:59 +03:00
Mikhail Glukhikh
f21603daf2
Source code fix according to KT-4475
2015-11-16 10:55:15 +03:00
Denis Zharkov
6ae653e5a1
Implement stub building for inner types
2015-11-13 14:59:04 +03:00
Denis Zharkov
7500447e72
Implement serialization of inner types
2015-11-13 14:59:03 +03:00
Denis Zharkov
188bcf0a03
Introduce TypeConstructorSubstitution.create
...
After latest changes type constructors of inner classes contains
additional type parameters that are copies of ones from outer class.
Their indices are correct, but they used only for subtyping check,
all entries within inner classes are still refers to original
descriptors having different indices.
Example:
class Outer<E> {
inner class Inner<F> { // Inner's type constructor looks like Inner<F, E>
fun foo(): E // refers to E in outer having index 0
}
}
Indexed substitution does not work here because of intersecting indices,
so we replace it with common map substituion in such cases.
2015-11-13 14:47:29 +03:00
Denis Zharkov
deea0643ad
Refine type arguments resolution and rendering
...
In case of type constructors captured parameters from outer classes
#KT-5510 Fixed
#KT-3112 Fixed
#KT-6325 Fixed
#KT-408 Fixed
#KT-6337 Fixed
2015-11-13 14:47:28 +03:00
Denis Zharkov
d614adcd2a
Obtain type parameters of constructor from containing class
...
Effectively this commit is just inlining of 'typeParameters' parameter
2015-11-13 14:47:28 +03:00
Denis Zharkov
c9aa75259b
Introduce ClassDescriptor.declaredTypeParameters
...
Should be a subset of type constructor's parameters
2015-11-13 14:47:28 +03:00
Valentin Kipyatkov
e66f1c2d70
KT-9981 Code cleanup replace usages of !in incorrectly
...
#KT-9981 Fixed
2015-11-13 14:32:33 +03:00