Get rid of Kind in JavaPackageFragmentDescriptor and create subclass which exposes additional function
Add method in JavaClassDescriptor to get correponding package fragment
Remove JavaDescriptorResolver from context
Remove LazyJavaClassResolverWithCache
This actually can affect behaviour because JavaResolverCache has slightly different logic (uses CLASS key in BindingContext as opposed to FQNAME_TO_CLASS_DESCRIPTOR)
Operator priority calculation for 'this' expressions was incorrect in
JetPsiUtil.getPriority(): it would return a very low value for
a JetThisExpression, causing the IDE to report that parenthesis
are necessary in an expression like '(this)[1]'.
Fix this by making JetThisExpression not implement
JetStatementExpression by removing the implements clause from
JetLabelQualifiedInstanceExpression and adding it to all other
subclasses of JetLabelQualifiedInstanceExpression.
Fixes KT-4513.
JetNameSuggesterTest contains useful code for getting the last comment
of a file. Extract it to JetTestUtils.getLastCommentInFile() so other
tests can use it as well.
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"
This is to account for the case of, say
class Function<R> { fun invoke(): R }
it would be a shame to put @Nullable on the return type of the function, and force all callers to check for null,
so we put no annotations
Correct behaviour for unary, binary expressions and type references
Add instanceof checks in TipsManager so it's clear it only takes care of certain types of JetSimpleNameExpression
This is needed to smoothly make equals, hashCode and toString members of Any
instead of being extensions, as they are now: according to our bootstrapping
process, the same compiler code will be built twice, by old compiler (with
extensions) and by new compiler (with members). In the resulting code
'override' should be on all these members in all classes, so the old compiler
should be able to compile such code
Here was an out-of-date error message. It could confuse developers about the function literal syntax.
"To specify it explicitly use the {(p : Type) => ...} notation"
This test is needed because BuiltInsSerializer uses lazy resolve to load and
serialize built-ins. We need to make sure that lazy resolve works exactly like
deserialization
This reverts commit 1d21ebf882.
Conflicts:
compiler/testData/builtin-classes.txt
core/descriptors/src/org/jetbrains/jet/renderer/DescriptorRendererImpl.java
Reverting a part of this (related to the field 'prettyFunctionTypes') because
will need to add a test that deserialized built-ins (obtained by
KotlinBuiltIns.getInstance()) are consistent with lazy resolved built-ins. This
test would break because while DescriptorRenderer renders pretty function types
it compares descriptors to the ones from KotlinBuiltIns, but in case of lazy
resolve descriptors created for built-ins would be different from
KotlinBuiltIns, so renderer wouldn't correctly render a function type