Commit Graph

8687 Commits

Author SHA1 Message Date
Mikhail Glukhikh e8682fa9b9 Use diagnoseDescriptorNotFound() in findClassDescriptor 2017-09-28 18:43:39 +03:00
Mikhail Glukhikh 5c0bc266b3 Do not use unsafe getClassDescriptor() inside resolveToDescriptor
Introduce getClassDescriptorIfAny / findClassDescriptorIfAny instead
May fix KT-18740 / EA-76201
2017-09-28 18:43:38 +03:00
Mikhail Glukhikh adf0b25c0b LazyDeclarationResolver.kt: convert to Kotlin 2017-09-28 18:43:38 +03:00
Mikhail Glukhikh 04157c4137 LazyDeclarationResolver.java --> kt 2017-09-28 18:43:38 +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 265794e712 Add necessary ResolutionScope::recordLookup implementations 2017-09-28 14:01:30 +03:00
Denis Zharkov 580a7e3e4d Drop location parameter from ResolutionScope::definitelyDoesNotContainName
definitelyDoesNotContainName is called too eagerly sometimes and it leads
to obviously redundant lookups

The idea is to put responsibility for calling recordLookup to resolution
itself
2017-09-28 14:01:30 +03:00
Denis Zharkov c018a76aaa Use the same default import scopes for all files in module 2017-09-28 14:01:30 +03:00
Denis Zharkov 3322ed6e04 Implement LazyImportResolver::definitelyDoesNotContainName 2017-09-28 14:01:30 +03:00
Denis Zharkov 69f3b01e98 Introduce ImportingScope::computeImportedNames 2017-09-28 14:01:30 +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
Denis Zharkov fb80e19b88 Filter out inapplicable local scopes in call resolution
The idea is that resolution has an approximate complexity
close to (n + n*m) * 3
Where n is a number of scopes, m is a number of receivers
and 3-constant is used because each of these combinations
runs through 3 processors for functions.

And while call resolver seems to be a hot spot, it should be
useful to decreate the value of n
2017-09-28 14:01:30 +03:00
Mikhail Zarechenskiy 8a545f05de Provide quick fix for migration of single elements in named arguments
See more in KT-20171
2017-09-26 14:49:43 +03:00
Mikhail Zarechenskiy 69e3dd89f6 Split diagnostic factory for the ease of code evolution and tooling 2017-09-26 14:49:42 +03:00
Nikolay Krasko d51f54693f Exist if no identifier found (EA-91332) 2017-09-25 20:41:53 +03:00
Mikhail Glukhikh e8b95b971d Make parentheses necessary for '(x op return y) op z' #KT-16808 Fixed 2017-09-25 18:16:42 +03:00
Mikhail Zarechenskiy 32531b3afc Allow to have all parameters with default values in actual annotation
#KT-19656 In Progress
2017-09-25 16:19:05 +03:00
Alexey Sedunov 0beadddb7f Copy: Improve file copying
- Do not copy individual declarations if entire file is selected
  (keeping original content with comments, formatting, etc.)
- Update package directive when original file packages matches
  its directory

 #KT-20092 Fixed
 #KT-18196 Fixed
2017-09-25 14:40:17 +03:00
Alexander Udalov 2281ac842a Prohibit super constructor call for 'expect' class
#KT-15490 Fixed
2017-09-25 11:58:20 +03:00
Alexander Udalov 8ae7343557 Prohibit 'expect' lateinit member properties
#KT-20319 Fixed
2017-09-25 11:58:20 +03:00
Alexander Udalov 1f992ed845 Improve error on 'expect' delegated property
#KT-15054 Fixed
 #KT-15055 Fixed
2017-09-25 11:58:20 +03:00
Mikhail Glukhikh f348ee9381 Fix a pair of multi-platform messages #KT-20327 Fixed 2017-09-25 11:47:05 +03:00
Ilya Chernikov d039d191f2 Fix tests in the new build infrastructure 2017-09-19 23:58:30 +02:00
Alexander Podkhalyuzin 3f8170d369 Clean idea files generated on the gradle import, add them to .gitignore 2017-09-19 23:58:27 +02:00
Ilya Chernikov 27968c8e13 Set proper jvmTarget for projects 2017-09-19 21:37:27 +02:00
Ilya Chernikov deda50dbbb Continue switching projects to improved dsl: sourceSets and test running 2017-09-19 21:37:26 +02:00
Ilya Chernikov aa4fdaa713 Implement publishing in the build 2017-09-19 21:37:13 +02:00
Ilya Chernikov 61dfb75e0e Implement Gradle Kotlin DSL build 2017-09-19 21:37:06 +02:00
Valentin Kipyatkov 454c5229f9 Ability to disable caches reset on ProcessCanceledException via internal action 2017-09-19 16:52:20 +03:00
Stanislav Erokhin e8d42e4dde Increase stub version because we add new soft-keywords: expect and actual 2017-09-18 16:37:36 +03:00
Mikhail Glukhikh 9b0f15137f Expect/actual: introduce DEPRECATED_MODIFIER instead of ..._FOR_TARGET 2017-09-18 16:19:41 +03:00
Mikhail Glukhikh 721889600f Expect/actual: fix some error messages 2017-09-18 16:09:18 +03:00
Mikhail Glukhikh e12de11ce9 Fix add modifier for replacement case, add expect/actual order tests 2017-09-16 19:47:43 +03:00
Mikhail Glukhikh 2c521727c3 Add header/impl/expect/actual into modifiers order list 2017-09-16 19:47:42 +03:00
Mikhail Glukhikh a18e9436a1 Migration to expect/actual: change diagnostics rendering 2017-09-16 19:47:40 +03:00
Stanislav Erokhin 7982f3489e Rename compiler key -Xno-check-impl to -Xno-check-actual 2017-09-16 19:47:39 +03:00
Mikhail Glukhikh d3082b0e62 Migration to expect/actual: change some comments in compiler 2017-09-15 18:30:32 +03:00
Mikhail Glukhikh fcc84d00c3 Migration: make header/impl/expect/actual contradictory to each other 2017-09-15 18:30:25 +03:00
Mikhail Glukhikh fc4ff3b760 Migration to expect/actual: renames in DeclarationResolver 2017-09-15 18:30:18 +03:00
Mikhail Glukhikh afdd647df1 Migration to expect/actual: renames in DeclarationsChecker 2017-09-15 18:30:11 +03:00
Mikhail Glukhikh c5c6050baa Migration to expect/actual: renames in ExpectedActualDeclarationChecker 2017-09-15 18:30:04 +03:00
Stanislav Erokhin 8d8f683042 Fix header/impl in LazyClassDescriptor.toString 2017-09-15 18:29:50 +03:00
Stanislav Erokhin 2b186909d4 Migrate diagnostic names for header/impl 2017-09-15 18:29:29 +03:00
Mikhail Glukhikh e896a1f5ea Migration: add check for illegal expect on nested in non-expect class 2017-09-15 18:28:21 +03:00
Mikhail Glukhikh 205272f51b Migration: add expect/actual to hasExpected... / hasActualModifier 2017-09-15 18:27:53 +03:00
Mikhail Glukhikh 0640d5618c Migration: make modifiers HEADER & IMPL deprecated 2017-09-15 18:27:47 +03:00
Mikhail Glukhikh 2d0ac0011a Migration to expect/actual: ExpectedActualDeclarationChecker 2017-09-15 18:26:23 +03:00
Mikhail Glukhikh c4fd1a8e5c Migration to expect/actual: ModifierCheckerCore 2017-09-15 18:26:16 +03:00
Mikhail Glukhikh 810d62bbaf Add expect & actual to MODIFIERS_TO_REPLACE table 2017-09-15 18:26:02 +03:00