Commit Graph

35524 Commits

Author SHA1 Message Date
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