Alexey Andreev
4e2b1d68cf
KT-2752: deprecate parameter of @native annotation, prohibit simultaneous usage of parameterized @native and @JsName
2016-10-08 19:25:42 +03:00
Alexey Andreev
49022fd5bc
KT-2752: move some diagnostics from entire declarations to their headers
2016-10-08 19:25:41 +03:00
Alexey Andreev
b888d9e7d9
KT-2752: refactor NameSuggestion
2016-10-08 19:25:40 +03:00
Alexey Andreev
72ada61342
KT-2752: rename FQNPart to SuggestedName and FQNGenerator to NameSuggestion
2016-10-08 19:25:39 +03:00
Alexey Andreev
0c61f431ff
KT-2752: add some docs to FQNGenerator
2016-10-08 19:25:38 +03:00
Alexey Andreev
c14795f66d
KT-2752: refactor support of modules and root packages
2016-10-08 19:25:38 +03:00
Alexey Andreev
c657716ae0
KT-2752: minor fixes
2016-10-08 19:25:37 +03:00
Alexey Andreev
681a428473
KT-2752: prohibit JSName on extension properties
2016-10-08 19:25:36 +03:00
Alexey Andreev
33daf83f14
KT-2752: refactoring:
...
1. Get rid of most of ManglingUtils
2. Use simple mangling for delegated properties instead of stable mangling
3. Use stable mangling for public declarations of open non-public classes
4. When generating a fresh name in a JsScope, check it for clashing against parent scopes
5. JsFunctionScope does not generate fresh name instead of stable names
6. Function scopes inherit directly from global scope
7. Generate simple mangled names for backing fields of properties
2016-10-08 19:25:36 +03:00
Alexey Andreev
1dcb037aee
KT-2752: remove diagnostic that reports about overridden method having several names from different sources. Generate proxies instead. Fix reporting name clash when two distinct fake overrides require same name.
2016-10-08 19:25:35 +03:00
Alexey Andreev
c5087779e4
KT-2752: add diagnostics that reports about conflicting overridden declarations
2016-10-08 19:25:34 +03:00
Alexey Andreev
16c172f053
KT-2752: add diagnostic that reports about applying JsName on overridden declarations
2016-10-08 19:25:33 +03:00
Alexey Andreev
725d13b72e
KT-2752: fix JsName with explicit use target. Add some tests for JsName with use targets
2016-10-08 19:25:33 +03:00
Alexey Andreev
be0013d9f2
KT-2752: declare properties as a pair of functions when accessors are marked with @JsName
2016-10-08 19:25:32 +03:00
Alexey Andreev
6e1a0901ac
KT-2752: add checkers for inconsistent usage of JsName
2016-10-08 19:25:31 +03:00
Alexey Andreev
638952e96e
KT-2752: JsName renames native declarations
2016-10-08 19:25:31 +03:00
Alexey Andreev
50dd1e31c3
KT-2752: move tests, that check whether there's no name clash, to JS backend tests
2016-10-08 19:25:29 +03:00
Alexey Andreev
5ce158f297
KT-2752: add basic tests for JsName
2016-10-08 19:25:28 +03:00
Alexey Andreev
5e3aa33b13
KT-2752: add draft implementation of JsName annotation. Fix some tests using the annotation
2016-10-08 19:25:27 +03:00
Alexey Andreev
8738458c34
KT-2752: fix name clash diagnostic for case of extension property. Add more tests for the diagnostic
2016-10-08 19:25:27 +03:00
Alexey Andreev
8f829557c8
KT-2752: add diagnostic that checks whether Kotlin declarations produce conflicting names in generated JS
2016-10-08 19:25:26 +03:00
Alexey Andreev
f70b50b6e2
KT-2752: refactor generation of FQN in JS. Move backend-independent code to generic code in frontend.
2016-10-08 19:25:25 +03:00
Alexey Andreev
ed55923bb0
KT-2752: a new approach to compose fully-qualified names that does not depend on code generation and can be reused in JS front-end
2016-10-08 19:25:25 +03:00
Alexander Udalov
f7b4d7d35b
Move ClassifierUsageChecker and DeclarationChecker to checkers/
2016-10-06 14:40:20 +03:00
Alexander Udalov
0905b361d0
Drop LazyTopDownAnalyzerForTopLevel
...
Replace it everywhere with LazyTopDownAnalyzer
2016-10-06 14:40:20 +03:00
Alexander Udalov
7070b88ea4
Move PlatformToKotlinClassMap out from ModuleParameters
...
Configure it in the same way as other platform-specific components instead,
simplify some code
2016-10-06 14:40:20 +03:00
Alexander Udalov
b77388bd48
Pass PlatformToKotlinClassMap instance to PlatformTypesMappedToKotlinChecker
...
The purpose of this change is to allow PlatformToKotlinClassMap to be removed
from ModuleDescriptor
2016-10-06 14:40:19 +03:00
Alexander Udalov
9fb9c12f5e
Inline LazyTopDownAnalyzerForTopLevel#analyzeFiles
...
To make module initialization more explicit and configurable (especially in
TopDownAnalyzerFacadeForJVM)
2016-10-02 21:03:27 +03:00
Alexander Udalov
9cfe0be98e
Prettify TopDownAnalyzerFacadeFor{JVM,JS}
2016-10-02 21:03:22 +03:00
Alexander Udalov
4467e127f0
J2K TopDownAnalyzerFacadeFor{JVM,JS}: convert to Kotlin
2016-10-02 21:03:21 +03:00
Alexander Udalov
b34150e1ce
J2K TopDownAnalyzerFacadeFor{JVM,JS}: rename files
2016-10-02 21:03:21 +03:00
Pavel V. Talanov
32daf048c2
PlatformConfigurator: create container for each platform (it contains static services, mostly checkers) ahead of time
2016-09-26 14:42:57 +03:00
Dmitry Petrov
07198cf86d
SAM constructors for type aliases.
2016-09-22 10:38:34 +03:00
Alexander Udalov
c91f77f2a4
Rename LanguageFeatureSettings -> LanguageVersionSettings
2016-09-19 15:21:24 +03:00
Alexander Udalov
aec31bd88f
Uninherit LanguageVersion from LanguageFeatureSettings
...
Introduce LanguageVersionSettingsImpl to store everything related to the
selected language version
2016-09-19 15:20:47 +03:00
Mikhail Glukhikh
692623cb55
Cleanup: smart casts of safe call receiver applied (do NOT cherry-pick to 1.0.X)
2016-07-27 16:24:18 +03:00
Alexander Udalov
d945c33d5e
Move some members from OverrideResolver to OverridingUtil
2016-07-25 15:55:31 +03:00
Alexander Udalov
77bb691d4e
Rename SymbolUsageValidator -> ClassifierUsageChecker
...
Also validateTypeUsage -> check
2016-06-29 22:03:34 +03:00
Alexander Udalov
6ba32ed624
Refactor CallChecker and subclasses
...
Encapsulate everything that is needed in checkers into CallCheckerContext. Pass
an instance of this context instead of BasicCallResolutionContext to checkers.
Also pass an instance of the element to report errors on: this is useful
because before this, every checker had its own way of determining where should
the error be reported on. Some of them, for example, were not doing anything if
Call#calleeExpression returned null, which is wrong, see operatorCall.kt
#KT-12875 Open
2016-06-29 19:20:00 +03:00
Alexey Andreev
33248e7721
KT-3008: minor code style fixes
2016-06-27 15:33:31 +03:00
Alexey Andreev
b556b6efca
KT-3008 Fix JS backend tests
2016-06-27 15:33:24 +03:00
Alexey Andreev
95b78e18df
KT-3008 Change the way how modules are referenced in JS
2016-06-27 15:33:23 +03:00
Alexey Andreev
2909533522
KT-3008 Add module kind. Include module kind and module dependencies in metadata
2016-06-27 15:33:23 +03:00
Denis Zharkov
1b82e43d76
Add LanguageFeatureSettings parameter to single method in checkers interfaces
...
This parameter will be used further for target-dependent checks
Also introduce SimpleDeclarationChecker/SimpleCallChecker sub-interfaces (more weak ones)
Implementing them instead of base checkers is more convenient in most cases
2016-06-09 17:57:15 +03:00
Pavel V. Talanov
76971eca70
Refactor LanguageFeatureSettings: Add LanguageVersion and LanguageFeature entities
2016-05-26 22:16:47 +03:00
Alexander Udalov
e1ba4480d7
Support "-language-version" CLI option for compatibility with older releases
...
Introduce LanguageFeatureSettings, instance of which should be injected by the
container and be accessible everywhere during the compilation (front-end and
back-end).
Parameters of LanguageFeatureSettings are unused in this commit, will be used
later
2016-05-26 22:15:39 +03:00
Alexander Udalov
159d88102f
Use MODULE_NAME configuration key in JS instead of MODULE_ID
2016-05-26 11:47:30 +03:00
Alexander Udalov
cad4b6973c
Introduce and use JSConfigurationKeys similar to JVMConfigurationKeys
...
Use type-safe keys in CompilerConfiguration instead of multiple parameters,
duplicated in the base class (JsConfig), derived class (LibrarySourcesConfig)
and its builder (LibrarySourcesConfig.Builder)
2016-05-26 11:47:30 +03:00
Alexander Udalov
b65980f3b7
Drop JsConfig#inlineEnabled flag
...
Use CommonConfigurationKeys#DISABLE_INLINE flag (moved from
JVMConfigurationKeys) in CompilerConfiguration instead, similarly to the JVM
compiler
2016-05-26 11:47:30 +03:00
Alexander Udalov
6889bdbef8
Add CompilerConfiguration to JsConfig
...
Will be used to store common compiler options (such as source version, inline
disabled, etc) as well as JS-specific options, to unify the logic of compiler
option initialization between JS and JVM compilers
2016-05-26 11:47:30 +03:00