Alexander Udalov
7febd846e8
Export 'intellij-core' in module 'frontend'
...
Remove intellij-core from dependencies of modules which already depend
on frontend or any module that exports frontend (such as frontend.java)
2017-06-06 14:29:26 +03:00
Alexander Udalov
2ed027219c
Remove dependency of module 'frontend' on 'plugin-api'
...
This breaks the circular dependency between them
2017-06-06 14:29:25 +03:00
Pavel V. Talanov
0571c62943
KtLightElements: make light annotations lazier
...
Allow to get annotation list and to invoke `findAnnotation` without building delegate
Introduce KtLightNullabilityAnnotation which holds nullability information and is built
before delegate is built
2017-05-02 15:40:17 +03:00
Alexander Udalov
861d9a1620
Use null instead of CompilerMessageLocation.NO_LOCATION in MessageCollector
2017-04-11 12:08:31 +03:00
Pavel V. Talanov
4f701285b1
Light class builder: do not generate methods delegating to DefaultImpls in kotlin classes
...
Class APIs from java point of view stays the same so we can avoid generating those methods
Otherwise we have to calculate all supertypes when getMethods() is called,
which imposes severe performance penalties
We have to pretend these methods are not 'abstract' (also we consider them 'default' for safety)
so java highlighting does not report "class should be abstract" for all inheritors
We have to manually report "class should be abstract" on some of the java inheritors,
specifically those that are implementing interfaces directly
as opposed to extending kotlin classes implementing those interfaces
2017-04-09 15:09:01 +03:00
Mikhail Glukhikh
045a23ae10
Cleanup: apply "Convert lambda to reference"
2017-03-15 17:36:02 +03:00
Mikhail Glukhikh
b121bf8802
Cleanup: fix some compiler warnings (mostly deprecations, javaClass)
2017-03-15 17:35:31 +03:00
Yan Zhulanow
feb5397f6f
AllOpen, NoArg: Refactoring, support presets in order to hold special annotations for Spring and JPA in one place
2017-02-08 17:36:19 +03:00
Alexander Udalov
7ac96163ac
Introduce CompilerMessageSeverity.STRONG_WARNING
...
This is a severity for mandatory warnings, i.e. those which should be reported
in any case, even if there are compilation errors
2017-01-30 16:01:27 +03:00
Mikhael Bogdanov
0a363fd1a5
Introduced test flag: JVM8_TARGET_WITH_DEFAULTS
2017-01-13 13:52:56 +01:00
Alexey Tsvetkov
865c6d887c
Report messages from kapt using MessageCollector
...
This allows to print messages when daemon is used.
System out is not copied to daemon client,
because multiple compilations can occur in parallel.
2016-12-19 22:55:25 +03:00
Alexey Tsvetkov
4fdca24db4
Remove source annotations removing (not needed with KAPT3)
2016-12-19 22:46:12 +03:00
Yan Zhulanow
d884830700
Allow to avoid declaration body resolution for function and property initializers if the return type is explicitly specified. This significantly reduces the analysis time in kapt3.
2016-12-05 19:57:43 +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
Yan Zhulanow
34efaea6ea
Increment PsiModificationTracker counter in a write action
...
(cherry picked from commit 73307a2)
2016-10-07 16:28:34 +03:00
Yan Zhulanow
2f933cfcf2
Kapt: Handle exceptions during annotation processing gracefully
...
(cherry picked from commit ee26c19)
2016-10-07 16:28:33 +03:00
Yan Zhulanow
82160bc86d
Parse enum arrays correctly
...
(cherry picked from commit 5f2b5cf)
2016-10-07 16:28:32 +03:00
Yan Zhulanow
f15f90a719
Kapt: Support apt options (KT-13984)
...
(cherry picked from commit b566a37)
2016-10-07 16:28:31 +03:00
Yan Zhulanow
46f3eae32c
Kapt: Dispose every JeElement and JeTypeMirror because some annotation processors may store them in static fields. (KT-13917)
...
Hello, Data Binding, why you cache them? :(
(cherry picked from commit d86a30b)
2016-10-07 16:28:29 +03:00
Yan Zhulanow
f83e7509b2
Kapt: typeElement.asType() should preserve type parameters and propagate it to its supertypes (KT-13865)
...
(cherry picked from commit 92c9cea)
2016-10-07 16:28:28 +03:00
Yan Zhulanow
a22721fbd8
Kapt: Add test on Map<Key, Intf> and MutableMap<Key, Intf>
...
(cherry picked from commit 59cdbcb)
2016-10-07 16:28:28 +03:00
Yan Zhulanow
30ed279426
Kapt: Measure Annotation Processing time
...
(cherry picked from commit 2554d40)
2016-10-07 16:28:27 +03:00
Yan Zhulanow
238340a143
Kapt: Simplify wrapper tests
...
(cherry picked from commit 1677984)
2016-10-07 16:28:25 +03:00
Yan Zhulanow
e04f834a0e
Kapt: Support type parameters in asMemberOf() (KT-13804)
...
(cherry picked from commit 0d97d73)
2016-10-07 16:28:24 +03:00
Yan Zhulanow
415acfbd05
Kapt: asMemberOf() should also check the containing type itself, not only its supertypes (KT-13823)
...
(cherry picked from commit 9f9ffdf)
2016-10-07 16:28:23 +03:00
Yan Zhulanow
cb9dc21649
Dispose IntelliJ platform components after annotation processing complete.
...
Annotation processors may cache ProcessingEnvironment.
(cherry picked from commit bd7a9c6)
2016-10-07 16:28:22 +03:00
Yan Zhulanow
f7f8cff00d
Kapt: Return substituted supertypes in directSupertypes() for immediate class types (KT-13746)
...
(cherry picked from commit 3aae990)
(cherry picked from commit 198115b)
2016-10-07 16:28:20 +03:00
Yan Zhulanow
8d2a4c3f91
asMemberOf() should always substitute type parameters for methods using the relevant substitutor
...
(cherry picked from commit dfadd17)
(cherry picked from commit 49b07a7)
2016-10-07 16:28:19 +03:00
Alexander Udalov
53b584f48c
Simplify usages of IncrementalPackageFragment and related code
...
Since its scope is now empty, no descriptor now has a container that is an
instance of IncrementalPackageFragment -> a lot of code is not needed anymore
2016-10-05 11:24:30 +03:00
Michael Bogdanov
1eac6d47ed
GenerationState in TypeMapper replaced with boolean flag
2016-10-03 14:13:17 +03:00
Michael Bogdanov
0390cd6ee1
Added GenerationState to KotlinTypeMapper
2016-10-03 14:05:59 +03:00
Alexey Tsvetkov
6ebb50751c
Remove source annotations when copy class with kapt2
...
Writing source annotations enables incremental compilation for kapt2.
However they are not needed in bytecode, so we remove them when
copying classes.
# Conflicts:
# compiler/cli/src/org/jetbrains/kotlin/cli/jvm/K2JVMCompiler.kt
# compiler/frontend.java/src/org/jetbrains/kotlin/config/JVMConfigurationKeys.java
2016-09-14 13:52:56 +03:00
Yan Zhulanow
fbf44aa9be
Kapt: Fix erasure() for immediate class types (KT-13748)
...
(cherry picked from commit 5fe01f6)
2016-09-10 17:36:51 +03:00
Yan Zhulanow
ef375e66cd
Kapt: calculate default values of Kotlin annotations correctly for annotations from binaries (KT-13733)
...
(cherry picked from commit fed9cb2)
2016-09-10 17:36:50 +03:00
Yan Zhulanow
c6c1673902
Kapt: load all annotations, even if annotation processors does not require it explicitly. Some annotation processors may want to process some more annotations (see DbFlow, Database annotation).
...
Blacklist some common-used Java and Kotlin annotations instead (like Deprecated, Nullable or Metadata).
(cherry picked from commit 6856a7c)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
975364b2ed
Kapt: Provide SourceRetentionAnnotationHandler for incremental compilation.
...
Collect annotations with the "SOURCE" retention.
(cherry picked from commit 6ef66e7)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
c3ae66bc9c
Minor: fix compilation exception (due to exception in kotlinc)
...
(cherry picked from commit 5f2d3c4 )
2016-09-10 17:36:15 +03:00
Yan Zhulanow
471ddc5a93
Kapt: Write annotations with the "SOURCE" retention if kapt2 is enabled
...
(cherry picked from commit 6177b2b)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
00355f3c52
Kapt: Remove generated output directory each time before annotation processing
...
(cherry picked from commit c4b772a)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
32d77e5226
Kapt: support incremental compilation in Gradle (KT-13500)
...
Kapt will process sources on each step of incremental compilation.
(cherry picked from commit 4cb2127)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
743be477ec
Kapt: Add tests with Filer.
...
JavaFileObject.getName() now returns a path as required.
(cherry picked from commit c611f9b)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
824b778a7b
Kapt: support multiple annotation processing steps (KT-13651)
...
(cherry picked from commit 880e183)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
6ceaac63dc
Kapt: provide a default constructor if PsiClass does not have any
...
(cherry picked from commit 550b1c0)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
18068c699d
Kapt: Represent a single element as an array if the annotation method type is array type
...
(cherry picked from commit 19ce4cb)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
9127788f4a
Kapt: Fix erasure() for executable types (KT-13629)
...
(cherry picked from commit 461c29d)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
941d016cef
Kapt: abort compilation on error in annotation processing stage (KT-13622)
...
(cherry picked from commit f78b8b4)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
cc7eaeb910
Kapt: Allow passing primitive types and void to erasure() (KT-13617)
...
(cherry picked from commit 91444c5)
2016-09-10 17:36:15 +03:00
Yan Zhulanow
7810678389
Kapt: Fix type arguments in JeDeclaredType. In case of type variable, JeTypeVariableType should be returned
...
(cherry picked from commit ed34ec0)
2016-08-29 16:31:16 +03:00
Yan Zhulanow
ebcc762ae9
Kapt: JeTypeElement getInterfaces() and getSuperClass() should provide reference type mirrors
...
(cherry picked from commit 5f50ab6)
2016-08-29 16:31:16 +03:00
Yan Zhulanow
cd44540965
Kapt: Support String[] in annotation proxy
...
(cherry picked from commit 5e9eab9)
2016-08-29 16:31:16 +03:00