Alexey Andreev
c581ec6dd6
JS: fixes after code review
2016-11-25 14:07:31 +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
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
Alexander Udalov
eacf64e4db
Report initializer block-related diagnostic on 'init' keyword
2016-11-22 18:19:01 +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
bab9cde280
Type alias projections & substitution rules.
...
1. Substitution variance (sv) is a substitution composition of type alias argument variance (av)
and corresponding expanding type argument variance (ev):
sv =
| av == ev -> av
| av == INVARIANT -> ev
| ev == INVARIANT -> av
| else -> (variance conflict error; av)
2. Resulting variance (rv) is a type argument composition of sv and type parameter variance (pv):
rv =
| sv == tv => INVARIANT
| sv == INVARIANT => INVARIANT
| tv == INVARIANT => sv
| else -> (variance conflict error; sv)
2016-11-22 10:04:47 +03:00
Ilya Gorbunov
491ca582b3
Include collection type aliases into mock-runtime as they are used extremely often in tests
2016-11-21 18:20:33 +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
b8525de726
Disallow @JvmOverloads on any interface methods
...
#KT-12224 Fixed
2016-11-18 11:05:02 +01:00
Dmitry Jemerov
79e90b32e8
@JvmOverloads on local declarations is now an error
2016-11-18 11:05:01 +01:00
Dmitry Jemerov
12e4cf9a4f
Report @JvmOverloads errors on annotation, not on entire declaration (KT-12701)
2016-11-18 11:05:00 +01:00
Mikhail Zarechenskiy
4b23c50bf8
Parse expressions like '1._foo()' after dot as references
2016-11-17 22:58:40 +03:00
Ilya Gorbunov
daac46bce5
Fix rendering in test output after introducing type aliases for the types used in those tests.
2016-11-16 18:47:42 +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
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
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
Denis Zharkov
24819a079b
Change resolution scope for componentX in lambda parameters
...
Component-functions are resolved in the same scope as the first statement of the lambda, but lambda receiver was not available
#KT-14692 Fixed
2016-11-10 10:33:42 +03:00
Dmitry Petrov
03d8aa272b
Infer type arguments of type alias constructors.
2016-11-09 10:48:07 +03:00
Mikhail Zarechenskiy
3df5efb236
Introduce language feature: underscores in numeric literals
...
#KT-2964 Fixed
2016-11-08 19:04:53 +03:00
Ilya Gorbunov
660dc94f7c
Move Closeable to its usage, move internal Serializable to kotlin package in JS, introduce internal typealias in kotlin.io in JVM.
2016-11-07 21:39:36 +03:00
Denis Zharkov
6491d3fbac
Do not report DSL scope violation error when language-version is 1.0
...
#KT-11551 Fixed
2016-11-01 15:58:14 +03:00
Denis Zharkov
7553d3f72b
Intoduce and support DslMarker annotation
...
#KT-11551 In Progress
2016-11-01 15:58:14 +03:00
Dmitry Petrov
ed60674d13
KT-14498: Properly check variance in expanded types.
2016-10-28 18:02:15 +03:00
Mikhail Glukhikh
2130164d9b
EXTERNAL_DECLARATION_CANNOT_BE_ABSTRACT is now reported on property if accessor is external #KT-9297 Fixed
...
Also fixes EA-89227
2016-10-27 16:25:43 +03:00
Alexander Udalov
035d6156a7
Drop Cloneable in JS, synthesize it at compile-time on JVM
...
Use the same approach that is used for creating function type classes
(Function{0,1,...}) + add Cloneable to supertypes of Array and primitive arrays
#KT-5537 Fixed
2016-10-25 15:42:33 +03:00
Denis Zharkov
10861e57ff
Fix NDFDE for single underscore named property in primary constructor
...
NDFDE = NoDescriptorForDeclarationException
See the comment in change
2016-10-24 18:00:02 +03:00
Denis Zharkov
09dc207052
Add SingleUnderscoreForParameterName language feature
2016-10-24 18:00:02 +03:00
Denis Zharkov
1f0293eb42
Check modifiers applicability on destructured lambda parameters
...
#KT-14502 Fixed
2016-10-24 18:00:02 +03:00
Denis Zharkov
51f4244980
Report UNUSED_DESTRUCTURED_PARAMETER_ENTRY
...
on destructured lambda parameters
#KT-14347 Fixed
2016-10-24 10:19:25 +03:00
Denis Zharkov
4c69416f2b
Report warning on unused entities that can be renamed to _
...
Currently it's all about lambda parameters/destructuring entries
#KT-14347 In Progress
2016-10-24 10:19:25 +03:00
Denis Zharkov
dbca310d8c
Support single-underscore variable names partially
...
Currently only parameters of lambdas/function expressions
and destructuring entries are allowed
#KT-3824 In Progress
#KT-2783 In Progress
2016-10-24 10:19:25 +03:00
Ilya Gorbunov
82364ad3e5
Filter out typealiases invisible due to API_VERSION < their SinceKotlin version, when determining excluded imports.
2016-10-21 18:19:03 +03:00
Mikhail Glukhikh
bfaa9cf56f
UnreachableCode.getUnreachableTextRanges always returns at least one range #KT-14158 Fixed
2016-10-21 10:31:50 +03:00
Dmitry Petrov
2986e7b508
Check for repeated annotations in type alias expansion.
2016-10-21 09:56:10 +03:00
Dmitry Petrov
5531762ab1
Check for repeated annotations in type alias declaration.
2016-10-21 09:56:10 +03:00
Mikhail Glukhikh
a19d178867
Initialization analysis : more accurate handling of non-local variables while merging data #KT-14304 Fixed
2016-10-20 19:52:44 +03:00
Alexey Andreev
f22a507e39
JS: add test to prove that #KT-5051 is no more reproducible
2016-10-20 12:16:30 +03:00