Alexander Udalov
1d71c19b42
Serialize .kotlin_metadata binary files per source file
...
Do not serialize everything in the same package to the same file (as is done
for built-ins) because this approach is unfriendly to incremental compilation,
which is going to be supported in the future. Instead, similarly to JVM
serialize each class to its own file, and each source file with top-level
callables/typealiases to its own file.
E.g. if a file named test.kt contains a class Foo and some
functions/properties, the output will contain two files: TestKt.kotlin_metadata
and Foo.kotlin_metadata. Each one of this files contains the serialized
BuiltIns message (see builtins.proto)
2016-11-25 20:50:10 +03:00
Alexander Udalov
ec03c6decb
Introduce K2MetadataCompiler, extract MetadataSerializer out of BuiltInsSerializer
...
K2MetadataCompiler is a compiler facade similar to K2JVMCompiler and
K2JSCompiler and it produces .kotlin_metadata files. Each .kotlin_metadata file
contains the binary data which is a serialized BuiltIns protobuf message.
There's no 'kotlinc-***' script yet though, so to run this compiler currently
invoke this:
KOTLIN_COMPILER=org.jetbrains.kotlin.cli.metadata.K2MetadataCompiler kotlinc
2016-11-25 20:50:09 +03:00
Nikolay Krasko
b007306740
Make breakpoints work inside nameless function bodies in inline calls
2016-11-25 18:06:36 +03:00
Nikolay Krasko
89ac89f0c6
Fix breakpoints in secondary constructors
2016-11-25 18:06:36 +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
ce6cf6475c
JS: fix compilation of project
2016-11-25 14:43:48 +03:00
Alexey Andreev
66c78be10f
JS: don't optimize RTTI when possible, i.e. don't remove is and as when object is known at compile time to have type in RHS of expression. Substitute kotlin.Any with Object. Fix #KT-7665, #KT-7664
2016-11-25 14:08:13 +03:00
Alexey Andreev
c581ec6dd6
JS: fixes after code review
2016-11-25 14:07:31 +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
e17321e1f6
JS: fix some code in stdlib that attempts to to is check against native interface
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
Mikhail Glukhikh
2bb81e6a18
Simplify boolean with constants intention supports now == (!=) true (false) cases #KT-13777 Fixed
2016-11-24 18:05:36 +03:00
Alexey Andreev
20669c1b97
JS: fix building stubs for JS library that contains classes in default package
2016-11-24 17:49:11 +03:00
Nikolay Krasko
efeccd0929
Filter out variables with null values (EA-87276)
2016-11-24 17:22:33 +03:00
Mikhail Glukhikh
5c09e1ca98
KT-13393 related: convert reference to lambda inspection (off by default) introduced
2016-11-24 15:26:38 +03:00
Mikhail Glukhikh
9c75324188
Minor: rename in KtPsiFactory
2016-11-24 15:26:30 +03:00
Mikhail Glukhikh
b111d1ba69
Convert reference to lambda intention introduced #KT-13393 Fixed
2016-11-24 15:26:18 +03:00
Mikhail Glukhikh
27df76b02d
Minor: typo fixed
2016-11-24 15:26:07 +03:00
Mikhail Glukhikh
c6997a1213
Redundant if inspection supports now assignments and just if (...) true else false #KT-13259 Fixed
2016-11-24 15:25:56 +03:00
Mikhail Glukhikh
14787e3583
VarianceChecker: correct handing of nested classes and their methods #KT-14733 Fixed
2016-11-24 14:22:23 +03:00
Sergey Mashkov
1954cffd01
IDL2K: regenerate stubs
2016-11-24 12:14:34 +03:00
Sergey Mashkov
379afa187b
IDL2K: consider attribute ignores (from config.kt) before merge
2016-11-24 12:14:33 +03:00
Sergey Mashkov
ae69233d9c
IDL2K: render dictionaries as interfaces, always use nullable types
2016-11-24 12:14:32 +03:00
Sergey Mashkov
d3afb683a3
Update tests expected files
2016-11-24 12:14:31 +03:00
Sergey Mashkov
ecbf2c023d
Upgrade example
2016-11-24 12:14:31 +03:00
Sergey Mashkov
3285728391
IDL2K: generate declarations for partial interfaces
2016-11-24 12:14:30 +03:00
Sergey Mashkov
25461b42b9
IDL2K: manually fix SVGUseElementShadowRoot due to error in the SVG 2 specification
2016-11-24 12:14:29 +03:00
Sergey Mashkov
44335901c5
IDL2K: rename trait to interface, render NoInterfaceObject as native interface
2016-11-24 12:14:28 +03:00
Sergey Mashkov
5e01d4c993
IDL2K: update downloaded IDLs
2016-11-24 12:14:28 +03:00
Sergey Mashkov
f098d6881e
IDL2K: better logging
2016-11-24 12:14:27 +03:00
Sergey Mashkov
b0414fe905
IDL2K: better property duplicates handling, better reserved words handling
2016-11-24 12:14:26 +03:00
Sergey Mashkov
3c60e73d19
IDL2K: map array literal
2016-11-24 12:14:26 +03:00
Sergey Mashkov
df21b8bb7e
IDL2K: remove dfn-panel class during IDL extraction
2016-11-24 12:14:25 +03:00
Sergey Mashkov
2496f24817
IDL2K: update download urls
2016-11-24 12:14:24 +03:00
Sergey Mashkov
453cd943e4
IDL2K: fix grammar for better generic types supprt
2016-11-24 12:14:23 +03:00
Sergey Mashkov
d4c7831edd
IDL2K: upgrade antlr
2016-11-24 12:14:23 +03:00
Alexey Andreev
9c8b58b8bf
JS: when possible, treat WebIDL interfaces as abstract classes, not interfaces
2016-11-24 12:14:22 +03:00
Dmitry Petrov
f415050913
Suppress TOPLEVEL_TYPEALIASES_ONLY in decompiler and stubBuilder tests.
2016-11-24 10:41:50 +03:00
Ilya Gorbunov
03bbe875d4
Fix the links to the language docs from JvmStatic and JvmName annotations. Add a link from JvmField annotation.
...
#KT-14953 Fixed
2016-11-23 23:41:16 +03:00
Vyacheslav Gerasimov
663d999ac4
Fixed testOnDestroyFragment
2016-11-23 23:30:28 +03:00
Dmitry Jemerov
7f80a1faff
Workaround for Android databinding issue: apply extra scope filtering to classes returned from getClassesByName() (part of EA-75803 assert: ResolverForProjectImpl.descriptorForModule)
2016-11-23 18:29:26 +01:00
Dmitry Jemerov
1570886be3
Don't throw exception when resolving out-of-content-root PSI elements to descriptors (EA-92177 assert: ResolverForProjectImpl.descriptorForModule)
2016-11-23 18:29:25 +01:00
Dmitry Jemerov
763782083c
Implement KtLightTypeParameter.isEquivalentTo() without referencing delegate (this is faster and more correct)
2016-11-23 18:29:25 +01:00
Dmitry Jemerov
956e1c70dc
Provide toString() for classes that extend GlobalSearchScope (to diagnose package fragment errors)
2016-11-23 18:29:24 +01:00
Dmitry Jemerov
32be1940be
KtFile.getPackageFqNameByTree() never tries to access stub (EA-82168)
2016-11-23 18:29:24 +01:00
Dmitry Jemerov
c56a72d442
Retrieve virtual file for PsiFile via FileViewProvider, which always has a non-null vFile (EA-89047 - assert: LightClassDataProvider.getRepresentativeVirtualFile)
2016-11-23 18:29:23 +01:00
Dmitry Jemerov
89313b3495
Fix exception when companion object is on the top level of a file (EA-89388 - CCE: LightClassUtil$getWrappingClasses$.invoke)
2016-11-23 18:29:23 +01:00