Alexander Udalov
ce9691cd2b
Support platform/impl modifiers for properties
...
Do not allow platform properties to have backing fields, initializers, be
delegated, lateinit or const, or have accessors with bodies
2016-11-25 20:50:18 +03:00
Alexander Udalov
af1264a46d
Support platform/impl modifiers for functions
...
Also add a new capability for ModuleDescriptor, which is used to obtain the
platform in the multi-platform scenario in tests.
Suppress the following errors for platform functions: "function has no body"
and "nothing to inline". Also do not report redeclaration between platform and
non-platform functions because this is the case when the common +
platform-specific code are analyzed together.
Note that some diagnostics reported in tests are not yet implemented in this
commit, they appear in subsequent commits
2016-11-25 20:50:17 +03:00
Dmitry Petrov
3d2696c81b
KT-13440 Bound callable references in reflection
2016-11-25 16:11:18 +03:00
Dmitry Petrov
5879e201cd
Proper equality comparison for bound callable references represented as reflection objects
...
(including references to property accessors).
2016-11-25 14:49:24 +03:00
Dmitry Petrov
3dd0c9d1c7
Equality comparison for bound callable references takes into account bound receiver.
...
Fixed KT-14939: use expected receiver type when generating receiver code in get/set methods for bound property references.
Otherwise we have VerifyError for bound receiver 'null' of type 'Nothing?', which is mapped to 'java.lang.Void'.
TODO: proper equality comparison for property accessors ('x::prop.getter', 'x::prop.setter').
2016-11-25 14:49:24 +03:00
Alexey Andreev
46242f4430
JS: when RHS of as cast is non-nullable native interface, check LHS for null
2016-11-25 14:07:30 +03:00
Alexey Andreev
2eb54f234c
JS: prohibit passing native interfaces to reified type parameters
2016-11-25 14:07:29 +03:00
Alexey Andreev
acf7fcaebf
JS: prohibit is checks against native interfaces. Warn about casts to native interfaces. Fix #KT-14037, fix #KT-14038
2016-11-25 14:07:29 +03:00
Alexey Andreev
40e00a62f5
JS: fix translation of augmented assignment when RHS changes value of LHS
2016-11-23 12:19:03 +03:00
Alexey Andreev
dc8e90809c
JS: coroutines: fix handling of throw statement inside try/catch block when controller has handleSuspend function
2016-11-23 12:19:02 +03:00
Alexander Udalov
525e6e53fe
Do not report unhelpful diagnostic for unresolved call inside inline function
...
#KT-14887 Fixed
2016-11-22 18:19:01 +03:00
Denis Zharkov
01c21e218a
Add special tests for interceptRun support
...
Basically they're built upon basic coroutine tests, but for each of them
different interceptResume implementation are injected
(currently there are 12 of them).
It might be more simple just to generated additional testData, but I see this
more problematic in a sense of further maintenance
Note that all tests add idempotent 'interceptRun' operators,
which just execute given lambda in the current thread
#KT-14891 Fixed
2016-11-22 14:33:40 +03:00
Denis Zharkov
5276c3c755
Support 'interceptResume' operator in frontend
...
#KT-14891 In Progress
2016-11-22 14:33:40 +03:00
Dmitry Petrov
e6fcf20cf2
No variance elision in type alias substitution.
...
Add test with cyclic inheritance via type alias.
2016-11-22 10:04:47 +03:00
Dmitry Petrov
67fe28b8d8
Combine type annotations for arguments of type aliases.
2016-11-22 10:04:47 +03:00
Dmitry Petrov
063bce23d2
Prohibit constructing projected types via type aliases.
2016-11-22 10:04:47 +03:00
Dmitry Petrov
d665193c20
Type alias constructors for inner classes in expressions ans supertype lists.
2016-11-21 10:25:51 +03:00
Dmitry Petrov
4c47d77a9f
Report error on non-top-level type aliases (unsupported in 1.1).
...
Get rid of nested type aliases in project.
2016-11-21 10:25:51 +03:00
Dmitry Jemerov
5a533a521b
Don't consider a directory to be a package if there's a .java or .class file with the same name in its parent directory
...
#KT-12664 Fixed
2016-11-18 14:00:44 +01:00
Anton Bannykh
2f0bccfb09
JS: chained reified function calls (KT-12527) fixed
2016-11-18 13:48:16 +03:00
Dmitry Jemerov
a57748f4f4
@JvmOverloads-generated overloads of final methods are also final; test to verify that overloads of deprecated methods are deprecated
2016-11-18 11:05:03 +01:00
Dmitry Jemerov
d3ccbe8172
Generate correct varargs flag for @JvmOverloads-generated methods
...
#KT-14186 Fixed
2016-11-18 11:04:59 +01:00
Dmitry Jemerov
16a133bf5c
Generate default constructor also for private classes when all parameters have default values
...
#KT-14408 Fixed
2016-11-18 11:04:51 +01:00
Dmitry Jemerov
248185943c
Handle @JvmOverloads on inner class constructors correctly
...
#KT-14678 Fixed
2016-11-18 11:04:49 +01:00
Dmitry Petrov
8b99141030
KT-14839 Do not coerce after remapped variable store.
2016-11-18 09:35:31 +03:00
Mikhail Zarechenskiy
4b23c50bf8
Parse expressions like '1._foo()' after dot as references
2016-11-17 22:58:40 +03:00
Anton Bannykh
0dc9121a91
JS property accessors inlining (KT-13456)
2016-11-17 15:25:29 +03:00
Anton Bannykh
5b078fb236
JS: augmented assignments and increments (KT-14810) fixed
2016-11-17 13:21:49 +03:00
Alexey Andreev
e2dc7ba37e
JS: coroutines: fixes after code review
2016-11-16 19:29:39 +03:00
Alexey Andreev
d41d09ffc4
JS: add metadata for generated continuation classes to properly implement RTTI
2016-11-16 19:29:37 +03:00
Alexey Andreev
2d315c3df8
JS: coroutines: fix translation of try/finally block without catch
2016-11-16 19:29:35 +03:00
Alexey Andreev
22aea1cf12
JS: fix translation of return statement surrounded by finally block. Temporarily suppress corresponding test case for JVM backend
2016-11-16 19:29:34 +03:00
Alexey Andreev
eae0ceed86
JS: add coroutines tests
2016-11-16 19:29:34 +03:00
Dmitry Petrov
f7203da2d6
Type inference SHOULD NOT work for type alias constructor in supertypes list
...
(same as for classes: type arguments should be provided explicitly).
2016-11-16 14:11:14 +03:00
Dmitry Petrov
cd8b5dcb00
Constructors for inner type aliases: add a failing test (no way to invoke such constructor at the moment).
2016-11-16 14:11:14 +03:00
Dmitry Petrov
718e8ebf9e
Inner type aliases.
...
Type alias is considered "inner" if it captures outer class type parameters (implicitly or explicitly).
2016-11-16 14:11:14 +03:00
Anton Bannykh
334ae72957
Moved checking that reified is used in inlines only to the main frontend (KT-12695, KT-13697 fixed)
2016-11-15 13:44:48 +03:00
Denis Zharkov
6fca46a452
Allow inferring property type from its getter
...
#KT-550 Fixed
2016-11-15 09:30:13 +03:00
Alexander Udalov
65882579bc
Minor, add toString() for debug
2016-11-11 19:00:08 +03:00
Dmitry Petrov
b429f7bc86
KT-14581 Make FixStackAnalyzer tolerant to uninitialized values
2016-11-11 13:30:15 +03:00
Alexey Andreev
71ef8c4f89
JS: fix exception in JS front-end when checking JsName that was resolved with errors
2016-11-11 11:11:19 +03:00
Dmitry Petrov
6876f0e4d2
Support type aliases as bare types after 'is/as'.
2016-11-10 18:33:50 +03:00
Mikhael Bogdanov
21f2febf82
Fix for KT-13557: VerifyError with delegated local variable used in object expression
...
#KT-13557 Fixed
2016-11-10 15:12:16 +01:00
Dmitry Petrov
37eedc3703
Hack: do not add trivial constraints (t <: Any?) for constituent types,
...
otherwise nested calls handling logic in old inference wouldn't work for type alias constructors.
2016-11-10 14:54:11 +03:00
Dmitry Petrov
549ae59562
Inference for type alias constructor type arguments: better error reporting.
2016-11-10 14:54:11 +03:00
Dmitry Petrov
94d7bd7a6b
KT-14641: Nested type alias reference via an instance is an error.
2016-11-10 14:54:11 +03:00
Mikhail Glukhikh
ce72337ebd
Effective visibility is now considered private for invisible fake #KT-14469 Fixed
2016-11-10 13:42:58 +03:00
Zalim Bashorov
41bd276814
Mute some new tests for JS and regenerate tests
2016-11-09 21:51:33 +03:00
Zalim Bashorov
1dedb38481
Regenerate tests
2016-11-09 21:41:12 +03:00
Zalim Bashorov
a1730f98ba
Don't generate test when target backend is not suitable
2016-11-09 21:41:12 +03:00