Commit Graph

34238 Commits

Author SHA1 Message Date
Valentin Kipyatkov c06e2d994e KT-13884 Exception "Invalid root block PSI element" on replacing trivial when-expression to if
#KT-13884 Fixed
2016-10-10 14:48:15 +03:00
Valentin Kipyatkov 597cd04831 KT-13719 'var' can be made 'val' highlighting range with annotation before
#KT-13719 Fixed
2016-10-10 14:48:14 +03:00
Mikhail Glukhikh 8d48b0d2a0 UNUSED_VARIABLE is now reported only for last entry of destructuring declaration (if applicable) #KT-14221 Fixed 2016-10-10 14:42:09 +03:00
Mikhail Glukhikh 126304c197 Destructure intention applied (compiler) 2016-10-10 14:42:04 +03:00
Michael Bogdanov d911de20f9 Print bytecode on signature test fail 2016-10-10 14:17:51 +03:00
Michael Bogdanov f8e9922c9e Don't generate generic signature for get/set methods in property reference class 2016-10-10 14:17:50 +03:00
Michael Bogdanov 5bd045c79c Fix for KT-14243: Wrong invocation descriptor on calling implicitly generated implementation in class
#KT-14243 Fixed
2016-10-10 14:17:50 +03:00
Dmitry Jemerov ce0d81f670 to avoid running resolve under ClsTypeElement lock, return empty modifier list if we're currently calculating the return type (the modifier list is requested to apply type annotations, and we don't care about them anyway)
#KT-12966 Fixed
2016-10-10 12:48:51 +02:00
Dmitry Jemerov e55c82d3f3 don't try to resolve declaration to descriptor if we don't have any annotations 2016-10-10 12:46:35 +02:00
Ilya Chernikov b7a52dc685 Add more standard templates 2016-10-10 11:24:54 +02:00
Ilya Chernikov 5e5ebaa68b Create a script runtime jar with a copy of standard script template (renamed) 2016-10-10 11:24:53 +02:00
Alexey Andreev 61b429f2f0 JS: fix exception during translation of for expression with iterator having generic type constrained by Iterable. Fix #KT-8385 2016-10-10 11:22:21 +03:00
Alexey Andreev 977fd8f591 KT-12707: support case when secondary super constructor has optional parameters 2016-10-10 11:21:45 +03:00
Alexey Andreev c1b8e50734 KT-12707: (JS) proper translation of a constructor in subclass that calls secondary constructor of parent class. Fix #KT-12707 2016-10-10 11:21:45 +03:00
Denis Zharkov b1dc31a64e Minor. Invert if 2016-10-10 10:44:11 +03:00
Denis Zharkov 0905bf3e38 Refine redundant null checks interpreter
The main change here is addition of a check that NotNullBasicValue instances
are not being created for non-reference types

Exactly this change should be used instead of f25f0db10e
The latter commit lead to problem described in the KT-14242 issue:
v.getType().getSort() == w.getType().getSort() && (v.getType().getSort() != Type.OBJECT || v.equals(w))

Problem is that the condition above returns true without calling `v.equals(w)`,
because the sort of type is ARRAY, not OBJECT, so testArray was being treated
as NotNullable erroneously

So the second part of this change is effectively revering mentioned commit

 #KT-14242 Fixed
2016-10-10 10:44:11 +03:00
Denis Zharkov 2eece06d5c Minor. Add hashCode override after existing equals 2016-10-10 10:44:11 +03:00
Alexey Andreev 322f6fe7ac KT-2752: fix translation of call to internal function from subclass 2016-10-08 19:25:53 +03:00
Alexey Andreev c814a9d1d2 KT-2752: fix support of typealiases 2016-10-08 19:25:52 +03:00
Alexey Andreev 831ac97ecd KT-2752: fix some tests and make them slightly less fragile 2016-10-08 19:25:51 +03:00
Alexey Andreev 9c7c82b151 KT-2752: refactor NameSuggestion, change rules for determining name stability and applying mangling 2016-10-08 19:25:50 +03:00
Alexey Andreev 6f7e7d8504 KT-2752: fixes after code review 2016-10-08 19:25:49 +03:00
Alexey Andreev 00867cb269 KT-2752: remove unnecessary hack that tries to treat annotation on property accessor as annotation on property itself; looks like FE has fixed that 2016-10-08 19:25:48 +03:00
Alexey Andreev e7e6a917eb KT-2752: when simple name of class is a JS keyword or a well-known global name, add '$' to name of constructor function 2016-10-08 19:25:47 +03:00
Alexey Andreev a4bf058be6 KT-2752: add hash-based suffix to private members of open/abstract public classes 2016-10-08 19:25:46 +03:00
Alexey Andreev ba9c908875 KT-2752: export JsName on class via JS reflection 2016-10-08 19:25:45 +03:00
Alexey Andreev aa5d15cff7 KT-2752: minor fixes after code review 2016-10-08 19:25:43 +03:00
Alexey Andreev 7956b038fd KT-2752: add test to prove that KT-13024 is no longer reproducible with new implementation of name mangling 2016-10-08 19:25:43 +03:00
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 fb7f221158 KT-2752: add test to ensure that JsName affects classes 2016-10-08 19:25:40 +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 7a7a6914a6 KT-2752: fix old tests, add test for clashing between class and its companion object 2016-10-08 19:25:30 +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