Commit Graph

2238 Commits

Author SHA1 Message Date
Mikhail Glukhikh d0e8f99d60 ResolveElementCache: script can now be analyzable parent
So #KT-20096 Fixed
2017-10-23 19:19:04 +03:00
Mikhail Glukhikh 26c1aec5df Related to DSGN-4505: change expect / actual icons to the new ones 2017-10-20 15:16:04 +03:00
Pavel V. Talanov 320c5f6f3a Try to approximate "build.gradle.kts" script dependencies on first access
This is a hacky solution to prevent whole file being highlighted as unresolved while we wait for gradle response
2017-10-17 18:49:48 +03:00
Pavel V. Talanov 539e655802 PluginDeclarationProviderFactory: improve diagnostic
Attempting to catch EA-103048
2017-10-16 18:18:36 +03:00
Mikhail Zarechenskiy b2dc82f17e Improve diagnostic for non-actual declaration with weak incompatibility 2017-10-13 16:14:17 +03:00
Dmitry Savvinov 175d23155e Effects: add (de)serialization of contracts in metadata
- Introduce new definitions in descriptors.proto
- Add new corresponding values in Flags.java
- Introduce ContractSerializer and ContractDeserializer, responsible for
for conversion ContractDescription <-> ProtoBuf.Contract
- Add dependency of 'serialization' module on 'resolution' so that it
could see contracts model.

Note that here we do a lot of seemingly unnecessary hoops, which in fact
necessary to respect existing module system (in particular, to be able
to extract ContractDescription declarations from 'descriptors' module to
make them invisible from reflection)

==========
Effect System introduction: 8/18
2017-10-11 13:34:54 +03:00
Denis Zharkov cb7d561c6c Add cache for declaration names in StubBasedPackageMemberDeclarationProvider
#KT-20683 Fixed
2017-10-10 18:34:31 +03:00
Alexey Sedunov ea8f3dcc65 Go to Implementation: Support suspend functions 2017-10-10 13:15:16 +03:00
Alexey Sedunov 21bf4d3f24 Rename: Suspend function support 2017-10-10 13:15:15 +03:00
Toshiaki Kameyama 0bda2732e5 Fix for KT-19134 IntelliJ Color Scheme editor - allow changing color of colons and double colons (#1314) 2017-10-09 11:02:02 +02:00
Mikhail Glukhikh e1ccd3afc5 Inspection: do not report anything with manual INFORMATION level offline
So #KT-20369 Fixed
So #KT-20333 Fixed
2017-10-06 16:21:04 +03:00
Dmitry Jemerov 85254838f6 Allow building UAST for in-memory virtual files 2017-10-06 14:43:22 +02:00
Leonid Stashevsky 95d32d8d1e Add @UnderMigration annotation and options for report level 2017-10-03 16:44:02 +03:00
Alexey Sedunov f63e33b23d Modules: Support production-on-test dependency
This feature is supported in IDEA project configuration
and can be used in Maven/Gradle-based projects

 #KT-20112 Fixed
2017-09-29 14:37:04 +03:00
Mikhail Glukhikh 5c5776a6b5 Use resolveToDescriptorIfAny in IDELightClassGenerationSupport 2017-09-28 18:43:38 +03:00
Denis Zharkov 5b7c766a54 Use Jsr305State.DEFAULT instead of IGNORE as a default value 2017-09-28 15:38:27 +03:00
Denis Zharkov dd2630e5c6 Fix loading additional compiler arguments from facets for libraries 2017-09-28 15:38:11 +03:00
Mikhail Glukhikh 5687fe6e39 Introduce ModuleDescriptor.findImplementingDescriptor() via facets
This function is now used instead of allImplementingCompatibleModules,
thus allowing it to be deleted together with allImplementingModules

So #KT-17369 Fixed
So #KT-17374 Fixed
May fix also some other MPP issues
2017-09-28 15:15:02 +03:00
Denis Zharkov cd3edfc5b2 Introduce MemberScope::classifierNames and some implementations
It aims to help with further optimizations
2017-09-28 14:01:30 +03:00
Denis Zharkov 1b255b4ed0 Implement LazyPackageMemberScope::getFunctions/VariableNames
It's necessary for future optimizations
Although current implementation is rather conservative,
it should be enough for current needs
2017-09-28 14:01:30 +03:00
Mikhail Glukhikh f348ee9381 Fix a pair of multi-platform messages #KT-20327 Fixed 2017-09-25 11:47:05 +03:00
Dmitry Jemerov 0682f74560 Avoid duplicate file type calculation 2017-09-22 14:30:36 +02:00
Dmitry Jemerov 65c0e445fd Don't crash when trying to build stubs for files that have been deleted
Fixes EA-97751
2017-09-21 17:48:06 +02:00
Dmitry Jemerov c05c359703 Correctly detect multiplatform modules in run code
LanguageVersionSettings doesn't mean that the module is actually
multiplatform; it only means that it _could_ be one. Use
platform and information from facet instead.

Also fix detection of common stdlib version and add tests for common
run config.
2017-09-18 19:23:22 +02:00
Mikhail Glukhikh 721889600f Expect/actual: fix some error messages 2017-09-18 16:09:18 +03:00
Alexey Sedunov bd3d79d318 Minor: Do not specify platform for project-level language settings 2017-09-18 14:55:16 +03:00
Mikhail Glukhikh a18e9436a1 Migration to expect/actual: change diagnostics rendering 2017-09-16 19:47:40 +03:00
Stanislav Erokhin 2b186909d4 Migrate diagnostic names for header/impl 2017-09-15 18:29:29 +03:00
Mikhail Glukhikh d20ba5d082 Migration to expect/actual minor: rename icon constants 2017-09-15 18:29:21 +03:00
Mikhail Glukhikh 9f02a8b2a8 Migration: PlatformHeaderAnnotator -> PlatformExpectedAnnotator 2017-09-15 18:26:59 +03:00
Mikhail Glukhikh 74f81f38ba Migration to expect/actual: highlighter markers 2017-09-15 18:26:46 +03:00
Stanislav Erokhin c8ee424f67 Rename isHeader to isExpect in descriptors 2017-09-15 18:25:41 +03:00
Stanislav Erokhin 4dc47c734c Rename has[Header|Impl]Modifier() to has[Expect|Actual]Modifier() 2017-09-15 18:25:27 +03:00
Stanislav Erokhin 1ebfe1af43 Refactoring. Replace hasModifier(HEADER_KEYWORD) to hasHeaderModifier() 2017-09-15 18:25:13 +03:00
Mikhail Zarechenskiy a63495aa0b Use language version settings of definitely known module 2017-09-15 08:16:25 +03:00
Yan Zhulanow d9f99971bb Disable old Parcelable quickfixes if @Parcelize annotation is present 2017-09-14 19:36:47 +03:00
Mikhail Zarechenskiy f905d56b38 Don't try to get KtFile on random element as it can throw exception
For example, this can be for copied elements (DummyHolder)
2017-09-14 18:27:40 +03:00
Mikhail Zarechenskiy b1d9abdf83 Propagate languageVersionSettings to resolution context 2017-09-14 18:27:34 +03:00
Denis Zharkov 4d95c30360 Restore -Xjsr305-annotations flag as a deprecated 2017-09-14 18:05:32 +03:00
Mikhail Glukhikh 92215b41b9 Replace resolveToDescriptor with unsafeResolveToDescriptor
Now unsafeResolveToDescriptor is equivalent to resolveToDescriptorIfAny
but throws exception in case no descriptor is found.
Old version of resolveToDescriptor is kept intact but made deprecated.
Some clarifying comments were added
2017-09-14 17:20:37 +03:00
Mikhail Glukhikh 71c2489ade Use safe resolveToDescriptorIfAny() when possible (related to EA-105681) 2017-09-14 15:08:04 +03:00
Nikolay Krasko 74043089ab Generate modifier list stub under nullable type for suspend functions (KT-20185)
Otherwise there's a PSI and Stub mismatch error produced.

 #KT-20185 Fixed
2017-09-14 12:28:26 +03:00
Alexander Udalov 70ae1596fb Support JvmPackageName annotation in binary format
The main changes are in jvm_package_table.proto and ModuleMapping.kt.
With JvmPackageName, package parts can now have a JVM package name that
differs from their Kotlin name. So, in addition to the old package parts
which were stored as short names + short name of multifile facade (we
can't change this because of compatibility with old compilers), we now
store separately those package parts, which have a different JVM package
name. The format is optimized to avoid storing any package name more
than once as a string.

Another notable change is in KotlinCliJavaFileManagerImpl, where we now
load .kotlin_module files when determining whether or not a package
exists. Before this change, no PsiPackage (and thus, no JavaPackage and
eventually, no LazyJavaPackageFragment) was created unless there was at
least one file in the corresponding directory. Now we also create
packages if they are "mapped" to other JVM packages, i.e. if all package
parts in them have been annotated with JvmPackageName.

Most of the other changes are refactorings to allow internal names of
package parts/multifile classes where previously there were only short
names.
2017-09-13 22:59:03 +03:00
e5l 5bb88b659b Rename flag Xjsr305-annotations->Xjsr305 2017-09-13 15:19:54 +06:00
Mikhail Glukhikh dafb52a44a CodeBlockModification...: count file as changed when no changed elements
It means that root PSI (KtFile itself) is changed

So #KT-19726 Fixed
So #KT-20157 Fixed
2017-09-12 17:28:32 +03:00
Alexander Udalov ac1c7d9a6a Drop Incompatible.NoImpl, fix no "missing impl" on nested class
Header/impl declarations are now considered fully compatible even in the
case when the impl declaration has no "impl" modifier. The error about
no "impl" is now reported separately and only on the impl declaration,
never on the header declaration

 #KT-20087 Fixed
2017-09-12 14:41:11 +03:00
Vyacheslav Gerasimov 89257e6397 Implement light classes for Kotlin scripts 2017-09-12 13:10:38 +03:00
Dmitry Jemerov 1d05e83401 Recognize common tests marked with annotations typealiased to @Test 2017-09-11 15:07:51 +02:00
Dmitry Jemerov aed01c8475 Consistent naming: common platform is common, not default 2017-09-11 15:07:51 +02:00
Nikolay Krasko 69176a146e getModuleInfo.kt: refactor 2017-09-08 15:06:03 +03:00