Alexey Andreev
245f23e7c2
JS: fix translation of references to external nested classes in files marked with @JsModule. See KT-15797
2017-01-19 16:30:57 +03:00
Alexey Andreev
daac24b62e
JS: prohibit referencing noImpl property from non-external declarations. See KT-15306
2017-01-19 13:09:06 +03:00
Alexey Andreev
199790276b
JS: prohibit dynamic values as handlers of property delegates. Prohibit delegation of classes by dynamic values. See KT-15283
2017-01-19 13:07:58 +03:00
Alexey Andreev
a4b2abc7d5
JS: prohibit spread operator and destructuring declaration in dynamic values. See KT-15283
2017-01-19 13:07:57 +03:00
Alexey Andreev
31d0e0b7c4
JS: prohibit .. operation on dynamic type. See KT-15184
2017-01-19 13:07:56 +03:00
Denis Zharkov
a048dde7a5
Support non-tail suspend calls in front-end
...
#KT-15597 In Progress
2017-01-14 13:24:53 +03:00
Mikhail Glukhikh
c09a71b178
Multi-platform refactoring: get rid of PlatformKind (replace with MultiTargetPlatform)
2017-01-12 18:58:13 +03:00
Zalim Bashorov
316da8331f
KJS: relocate com.google.dart.compiler -> org.jetbrains.kotlin
2017-01-09 17:14:19 +03:00
Zalim Bashorov
cb4c3ed686
KJS: rename "js.dart-ast" module to "js.ast"
2017-01-09 17:13:23 +03:00
Alexey Andreev
900adcf29b
JS: prohibit stable (public) names with non-identifier chars. Rewrite unstable (private) names with non-identifier chars. See KT-4160
2016-12-30 16:21:18 +03:00
Alexey Andreev
27c2a4f6a8
JS: disable mangling for PublishedApi. Export declarations marked with PublishedApi. See KT-15442
2016-12-29 16:00:51 +03:00
Alexey Andreev
ed7ac7cea9
JS: do not report declaration clash when common redeclaration diagnostic applies. See KT-14577
2016-12-29 16:00:36 +03:00
Alexey Andreev
79ba6a57d6
JS: report errors on different external items:
...
* data classes
* val/var parameters of primary constructors
* enum entry with body
* anonymous `init {}` block in classes
2016-12-29 16:00:35 +03:00
Alexey Andreev
03682ee849
JS: fix how module checker handles super classes
2016-12-29 16:00:34 +03:00
Alexey Andreev
1a7e8b0690
JS: allow to omit delegated constructor call for external classes in common FE. Prohibit delegated constructor call for external classes in JS FE.
2016-12-29 16:00:33 +03:00
Alexey Andreev
02ea1a4d64
JS: split error diagnostic about body of external declaration into three different diagnostics (additional ones: wrong initializer, wrong default value of parameter).
2016-12-29 16:00:32 +03:00
Alexey Andreev
6ef4a3389e
JS: prohibit external functions and accessors with bodies other than noImpl. Prohibit to use anything except noImpl for default parameters initializers in external functions. See KT-13892
2016-12-29 16:00:30 +03:00
Alexey Andreev
55d4c0e439
JS: prohibit non-abstract members of external interfaces, except for nullable properties. See KT-15308
2016-12-29 16:00:30 +03:00
Alexey Andreev
403753f5b5
JS: prohibit inline external declarations. See KT-15307
2016-12-29 16:00:29 +03:00
Alexey Andreev
84f094c770
JS: prohibit to implement functional interfaces. See KT-15136
2016-12-29 16:00:29 +03:00
Dmitry Petrov
8d16bd1215
Method can be hidden if it is annotated with kotlin.internal.PlatformDependent,
...
or is a Java method from a Kotlin built-in class (transitively).
https://github.com/Kotlin/KEEP/blob/master/proposals/jdk-dependent-built-ins.md#backward-compatibility-of-overrides
2016-12-23 13:51:08 +03:00
Alexey Andreev
22ff7c6c45
JS: when translating content of js() function, rename all free references if they point to Kotlin local variable with the same name. See KT-15212
2016-12-17 12:12:36 +03:00
Alexey Andreev
b08afb0e93
JS: prohibit overriding external functions with optional parameters by non-external fake functions
2016-12-15 19:05:32 +03:00
Alexey Andreev
e2dab5ab5c
JS: prohibit overriding external functions with optional parameters by non-external functions. See KT-13889
2016-12-15 19:05:32 +03:00
Alexey Tsvetkov
d1156211a8
Make JS header/impl name clash checks independent of sources order
...
If an impl source was placed before a header in a sources list,
the JS_NAME_CLASH error would be reported.
2016-12-15 16:43:35 +03:00
Mikhael Bogdanov
268d55104c
Don't generate delegation to java default methods
...
#KT-15226 Fixed
2016-12-14 11:20:04 +01:00
Stanislav Erokhin
653d589f98
FIx tests after renaming platform to header.
2016-12-13 23:08:47 +03:00
Mikhail Glukhikh
57da92b862
Infrastructure change: module descriptor now knows its platform kind & its sources kind
2016-12-13 18:53:55 +03:00
Stanislav Erokhin
59efedf610
Rename platform to header.
2016-12-13 18:00:00 +03:00
Alexey Andreev
9dc16f0564
JS: prohibit runtime annotations on external declarations. Warn about runtime annotation in remaining cases. See KT-13895
2016-12-13 13:58:41 +03:00
Alexey Andreev
e54138b74f
JS: use temporary names while translation, replace with fixed name during post-processing pass
2016-12-12 14:30:42 +03:00
Alexey Andreev
2df9daab1f
JS: prohibit private inline members of external classes, since KT-14031 was postponed
2016-12-09 15:13:10 +03:00
Alexey Andreev
df34e69d7d
JS: prohibit inheritance of external classes from non-external (see KT-15130)
2016-12-09 15:13:09 +03:00
Alexey Andreev
fff1af4ff6
JS: allow to inherit external classes with overloaded functions in case we don't override them (see KT-13910).
2016-12-09 15:13:09 +03:00
Alexey Andreev
ecb498717a
JS: rework diagnostics names. Prohibit external inner classes (see KT-14027)
2016-12-09 15:13:08 +03:00
Alexey Andreev
cf8161507c
JS: prohibit private members of external classes (see KT-14029)
2016-12-09 15:13:08 +03:00
Alexey Andreev
3882bf7564
JS: prohibit native (external) extension properties and functions. See KT-13896
2016-12-09 15:13:07 +03:00
Alexey Andreev
cc819928de
JS: prevent Any.equals from mangling
2016-12-09 12:04:31 +03:00
Alexey Andreev
a2d45153ba
JS: prohibit dynamic on RHS of in and !in operators (see KT-6579)
2016-12-09 12:03:52 +03:00
Alexey Andreev
fc6eaa015f
JS: prohibit using more than one argument in indexed access with dynamic receiver (see KT-6580)
2016-12-09 12:03:51 +03:00
Alexey Andreev
d0ffb5bd32
JS: add restrictions to external modifier according to KT-13893
2016-12-08 15:41:42 +03:00
Alexey Andreev
a7ce770cb4
Don't report error for properties and functions without body that either external by themselves or are members of external classes
2016-12-08 15:41:40 +03:00
Alexey Andreev
68412ae94f
JS: replace all usages of @native annotation with external modifier, in tests, stdlib, etc
2016-12-08 15:41:39 +03:00
Alexey Andreev
e0cb56b3c3
JS: use external modifier instead of @native annotation
2016-12-08 15:41:39 +03:00
Alexey Andreev
df88ebb1b3
KT-12877: don't throw exception when @JsModule annotation is improperly used
2016-12-03 17:15:11 +03:00
Alexey Andreev
d40e923722
KT-12877: minor fixes and cleanup
2016-12-03 17:15:10 +03:00
Alexey Andreev
31a1d6ca66
KT-12877: add diagnostics on JsModule/JsNonModule:
...
1) for all cases of misusing of JsModule report on JsNonModule as well
2) report about non-top-level declarations with JsModule/JsNonModule
3) report about JsModule/JsNonModule declarations inside file marked with JsModule/JsNonModule
4) report about usages of declarations not marked with both JsModule and JsNonModule from UMD module
2016-12-03 17:15:08 +03:00
Alexey Andreev
0238b182cc
KT-12877: add JsNonModule with support on front-end
2016-12-03 17:15:07 +03:00
Alexey Andreev
3f2ec6871d
KT-12877: add some front-end diagnostics for JsModule
2016-12-03 17:14:30 +03:00
Alexey Andreev
ac703dfda6
KT-12877: serialize information about file annotations. For each top-level declaration store containing file. Use this information to properly handle file-targeted JsModule.
2016-12-03 17:14:29 +03:00