Ilya Chernikov
88652154c9
Port compiler to the script-runtime with script base classes
2017-04-06 10:02:45 +02:00
Mikhail Zarechenskiy
90a8a164b4
Fix false warning about check for instance of nullable type
...
#KT-12269 Fixed
2017-04-05 21:35:09 +03:00
Mikhail Zarechenskiy
0d6b7bb6a1
Prohibit check for instance of a non-reified, non-subtype type parameter
...
#KT-12683 Fixed
#KT-9986 Fixed
2017-04-05 21:35:07 +03:00
Mikhail Zarechenskiy
9fdd5fe5e8
Allow to import private members if they are in the same file
...
#KT-7724 Fixed
2017-04-05 21:35:06 +03:00
Mikhail Zarechenskiy
f518e8ebb8
Prefer stable types to diagnose useless cast
...
#KT-11622 Fixed
2017-04-05 21:35:05 +03:00
Mikhail Zarechenskiy
13eddba1f2
Fix false warning about useless cast in property and property accessor
...
Note that there are some other problems, for example:
`val a = if (true) 1 as Number else 2`, here we'll get useless cast
#KT-9551 Fixed
#KT-9645 Fixed
2017-04-05 21:35:04 +03:00
Mikhail Zarechenskiy
12db3a263e
Don't report useless cast in lambda if it has influence on return type
...
#KT-15161 Fixed
#KT-12690 Fixed
2017-04-05 21:30:32 +03:00
mglukhikh
9fa16364e1
Find enclosing element for object literal in delegate #KT-8187 Fixed
2017-04-05 16:38:04 +03:00
Mikhail Glukhikh
7a53b2f4c8
Introduce UNUSED_ANONYMOUS_PARAMETER for anonymous functions
...
It is not reported for 1.0 language version because
renaming to _ is not possible. It has weak warning severity
So #KT-8813 Fixed
So #KT-16875 Fixed
2017-04-04 14:23:30 +03:00
Mikhail Zarechenskiy
bff9ebc0d5
Fix check for instance for types with compatible upper bounds
...
#KT-5246 Fixed
2017-04-03 16:25:32 +03:00
Mikhail Zarechenskiy
1e56815b3b
Do not show warning about useless elvis for error function types
...
#KT-17214 Fixed
#KT-12112 Fixed
2017-04-03 16:25:32 +03:00
Mikhail Zarechenskiy
3cdf6c898a
Warn for unnecessary (!!) assertion after method with generics
...
#KT-12276 Fixed
2017-04-03 16:25:32 +03:00
Mikhail Zarechenskiy
4aa808b250
Fix warning about useless elvis when generics are involved
...
#KT-13648 Fixed
2017-04-03 16:25:32 +03:00
Alexander Udalov
78e278ec4c
Remove redundant type arguments for Java 8+ in compiler modules
2017-04-03 14:51:18 +03:00
Alexander Udalov
d440f07111
Use Java 7+ diamond operator in compiler modules
2017-04-03 14:51:15 +03:00
Alexander Udalov
37f435da93
Use List.sort instead of Collections.sort
2017-04-03 14:50:33 +03:00
Alexander Udalov
a9f35ae898
Replace Map operations with computeIfAbsent
2017-04-03 14:50:32 +03:00
Alexander Udalov
5ebee6ceca
Use Java 8 lambdas instead of anonymous classes in compiler modules
2017-04-03 14:49:23 +03:00
Alexander Udalov
6aa0f7bb65
Use multi-catch when possible
2017-04-03 14:26:53 +03:00
Alexander Udalov
34f0576135
Invoke "remove unnecessary final" intention in compiler modules
2017-04-03 14:26:52 +03:00
Alexander Udalov
08b50cab08
Use java.util.function.Predicate instead of Guava
2017-04-03 14:26:50 +03:00
Nikolay Krasko
4dcae54ed1
Refactoring: extract lambda expression element type to separate class
2017-04-01 11:52:47 +03:00
Nikolay Krasko
6201aa4fd9
Re-parse after lambda was converted to block (KT-17156)
...
#KT-17156 Fixed
2017-04-01 11:52:46 +03:00
Pavel V. Talanov
795a83ee24
LookupTracker.DO_NOTHING is the default implementation of LookupTracker
2017-03-30 18:59:19 +03:00
Pavel V. Talanov
aeda85b256
FileScopeProvider(Impl): use DefaultImplementation annotation
2017-03-30 18:59:17 +03:00
Mikhail Zarechenskiy
fd6ed5aa72
Fix bogus warning about numeric overflow when value is zero
...
#KT-17149 Fixed
2017-03-30 13:27:53 +03:00
Mikhail Zarechenskiy
20d5616d75
Introduce Kotlin language version 1.2
...
Wherein DEFAULT version is still 1.1, which means that version 1.2 should be configured manually
2017-03-30 13:27:45 +03:00
Mikhail Zarechenskiy
283ed85df2
Drop useless parameter and avoid creating sets
2017-03-30 13:27:44 +03:00
Mikhail Glukhikh
a35b770c8d
Evaluate allImplementingModules lazily #KT-17136 Fixed
2017-03-29 18:17:55 +03:00
Dmitry Petrov
caae6ff2ec
KT-16264 Forbid usage of _ without backticks
...
Forbid underscore-only (_, __, ___, ...) names as callees and as types.
If CHECK_TYPE directive is on, filter out UNDERSCORE_USAGE_WITHOUT_BACKTICKS messages.
2017-03-29 15:47:22 +03:00
Ilya Chernikov
0a3c031528
Optimize and simplify script deps cache and appropriate index rebuilding
2017-03-29 13:29:47 +02:00
Alexander Udalov
ccd3781403
Disallow using named arguments for members of header classes
...
#KT-17083 Fixed
2017-03-27 20:10:18 +03:00
Alexander Udalov
b971ac9312
Allow impl declarations to have flexible types
...
Types of the corresponding parameters (or type parameter bounds, types
in supertypes, etc) are now compatible not only if they're equal, but
also if values of those types are mutually assignable (if "a" is subtype
of "b" and "b" is subtype of "a")
#KT-17005 Fixed
2017-03-27 20:10:17 +03:00
Alexander Udalov
116380a826
Allow impl declarations to have non-stable parameter names
...
#KT-17027 Fixed
2017-03-27 19:50:25 +03:00
Alexander Udalov
633798db18
Render incompatible impl member in "no impl for header" diagnostic
2017-03-27 19:50:25 +03:00
Pavel V. Talanov
a44aa8e112
Introduce KotlinOverridableInternalMembersShortNameIndex
...
Keeping track of all potentially overridable internal members
To optimize certain scenarios in light classes
2017-03-27 17:58:47 +03:00
Pavel V. Talanov
24303c8b39
Minor, stubs: isTrait -> isInterface
2017-03-27 17:58:45 +03:00
Alexey Sedunov
45b8cd29e1
Resolution Facade: Add explicit property for file target platform
2017-03-26 12:56:25 +03:00
Alexey Sedunov
1d0162402e
Move: Fix processing of calls and callable references
...
Fix CCE on callable references to Java methods.
Fix qualification of callable references without receivers.
Fix processing of calls/callable references to object extensions
and extension members.
Do not explicate short companion references
#KT-16809 Fixed
2017-03-26 12:56:24 +03:00
mglukhikh
4700936f66
DFA: count null comparison as identity comparison #KT-16538 Fixed
...
+ minor parameter refactoring
2017-03-24 17:33:42 +03:00
Mikhail Glukhikh
ca92ec0b7b
Fix "Specify explicit lambda signature" when no parameters exists
...
So #KT-15075 Fixed
2017-03-24 16:18:56 +03:00
Ilya Chernikov
3061862d31
Fix classloader extraction from script template
...
fixes #KT-16699
2017-03-23 18:11:35 +01:00
Ilya Chernikov
adc541c3b1
minor: Move sameSignature function into single use site to avoid local build problems
2017-03-23 18:07:44 +01:00
Mikhail Glukhikh
1780f7c9a2
Put not-null original type as last possible smart cast target
...
This fixes muted tests testSmartCast (IDE highlighting) and
testNestedSealed (Diagnostics).
Together with commit 555b3f12 this makes #KT-15901 Fixed
2017-03-23 17:17:37 +03:00
Ilya Gorbunov
dce0da68c6
Cleanup: post-cleanup after deprecation cleanup in compiler
...
Replace `takeIf { !expr }` with `takeUnless { expr }`.
Cleanup redundant parethesis as in `listOf((expr))`.
Replace `listOf(expr)` with `expr.let(::listOf)` where the former caused significant indentation change.
2017-03-23 16:48:38 +03:00
Alexander Udalov
579238c3be
Remove deprecated declarations from project code, cleanup usages
2017-03-22 20:25:54 +03:00
Alexander Udalov
e4ae7ca4ce
Use type substitution when matching header-impl members
...
Previously, type substitution, which is critical for matching generic
header/impl members with each other, was only performed when
checkImplementationHasHeaderDeclaration was called for impl class
(areCompatibleClassifiers creates the correct substitutor). This was
done in areCompatibleClassifiers: a substitutor which maps type
parameters of the header class to type parameters of the impl class was
created.
Now we create the same substitutor when
checkImplementationHasHeaderDeclaration is called for an impl member of
an impl class as well, manually.
#KT-15230 Fixed
2017-03-22 20:19:14 +03:00
Alexander Udalov
4c868be869
Minor, render "header" or "impl" in LazyClassDescriptor.toString
...
This makes debugging of multi-platform compilation much easier
2017-03-22 20:19:13 +03:00
Alexander Udalov
81774926fa
Discriminate header class in resolution from sources in AbstractLazyMemberScope
...
Similarly to getFirstClassifierDiscriminateHeaders, we select the first
non-header class if possible, otherwise we select just the first class.
This makes sure that a reference will never be resolved to a header
class if the corresponding impl class is present.
Note that overall the issue may not be fixed yet, because there are
other scopes where header classes are not yet discriminated
(LazyImportScope, DeserializedMemberScope). However, at this point I
cannot reproduce this problem with these other scopes
#KT-15521 Fixed
2017-03-22 20:18:16 +03:00
Mikhail Zarechenskiy
2a93dea0c4
Use concrete candidate to resolve collection literal
...
This helps to avoid resolution errors when there is local array-like function with the same signature as in built-ins
2017-03-22 17:59:58 +03:00