Commit Graph

1409 Commits

Author SHA1 Message Date
Alexander Udalov e62a2bbf2f Support any constant expressions as annotation arguments 2013-09-04 21:55:10 +04:00
Alexander Udalov a17328f9d3 Minor, move ABI version error reporting
AbiVersionUtil will be used in descriptors.loader.java, so it cannot depend on
BindingTrace
2013-09-04 21:55:10 +04:00
Alexander Udalov a2e4029bb5 Use ServiceLoader to load different implementations 2013-09-04 21:55:10 +04:00
Alexander Udalov 6549a1d10b Minor, polish JavaClass
- move utility methods out from JavaClass to the usage site
- JavaClassifier extends JavaNamedElement
2013-09-04 21:55:10 +04:00
Alexander Udalov 5af28cd953 Make JavaElementImpl generic on underlying PSI type 2013-09-04 21:55:09 +04:00
Alexander Udalov 4cd238ddde Pull down getPsi() method from JavaElement 2013-09-04 21:55:09 +04:00
Alexander Udalov 714dbe2df3 Move JavaElement implementations to 'impl' package 2013-09-04 21:55:09 +04:00
Alexander Udalov ac4561a9e2 Extract interface out of JavaClass 2013-09-04 21:55:09 +04:00
Alexander Udalov c64cfd7f76 Untie JavaTypeSubstitutor.EMPTY from PsiSubstitutor 2013-09-04 21:55:09 +04:00
Alexander Udalov d14a7282ba Extract interface out of JavaTypeSubstitutor 2013-09-04 21:55:09 +04:00
Alexander Udalov 2eb5754289 Extract interface out of JavaTypeProvider 2013-09-04 21:55:09 +04:00
Alexander Udalov 7f77290505 Extract interface out of JavaValueParameter 2013-09-04 21:55:09 +04:00
Alexander Udalov 8c1349b90e Extract interface out of JavaTypeParameter 2013-09-04 21:55:08 +04:00
Alexander Udalov 214f290de7 Extract interface out of JavaSignatureFormatter 2013-09-04 21:55:08 +04:00
Alexander Udalov f6b43bb7b2 Extract interfaces out of Java*Type 2013-09-04 21:55:08 +04:00
Alexander Udalov 08bf7f8eee Create abstract JavaElementFactory
Needed to wrap the logic of creation of elements/types, right now only array
types
2013-09-04 21:55:08 +04:00
Alexander Udalov 9f44a1eb0d Extract interface out of JavaType 2013-09-04 21:55:08 +04:00
Alexander Udalov d364834168 Extract interfaces out of Java*AnnotationArgument 2013-09-04 21:55:08 +04:00
Alexander Udalov 90e0d51463 Extract interface out of JavaAnnotationArgument 2013-09-04 21:55:07 +04:00
Alexander Udalov 2191073761 Minor, remove useless method 2013-09-04 21:55:07 +04:00
Alexander Udalov dc048f0edd Extract interface out of JavaAnnotation 2013-09-04 21:55:07 +04:00
Alexander Udalov 912d3426a4 Extract interface out of JavaClassifier 2013-09-04 21:55:07 +04:00
Alexander Udalov 4f99cb6999 Extract interface out of JavaPackage 2013-09-04 21:55:07 +04:00
Alexander Udalov 49a19705d1 Extract interface out of JavaMethod 2013-09-04 21:55:07 +04:00
Alexander Udalov 37beb9e50f Extract interface out of JavaField 2013-09-04 21:55:07 +04:00
Alexander Udalov ed146e51f9 Add an abstraction over ProgressIndicationProvider 2013-09-04 21:55:07 +04:00
Alexander Udalov 28367a412a Remove different usages of Guava and intellij-core from JDR 2013-09-04 21:55:06 +04:00
Alexander Udalov b9f96fe960 Introduce JavaClass.OriginKind
Answers to the question: where had this class originated from
2013-09-04 21:55:06 +04:00
Alexander Udalov 2d58bd571e Extract JavaResolverPsiUtils
Will contain PSI-specific JDR utilities
2013-09-04 21:55:06 +04:00
Alexander Udalov 2328902c7f Minor refactoring in MembersCache
Inline methods, provide a sane public interface
2013-09-04 21:55:06 +04:00
Alexander Udalov a5ad63c8b6 Copy and adapt TypeConversionUtil#erasure
This helps to separate SAM resolution from PSI
2013-09-04 21:55:06 +04:00
Alexander Udalov 2b1a2c9988 Extract ExternalAnnotationResolver 2013-09-04 21:55:06 +04:00
Alexander Udalov d5e47a61ad Extract JavaMemberResolver out of JDR
JavaDescriptorResolver had a lot of methods which were used only in Java*Scope.
This is not good because JDR is a facade class that everyone uses from outside
and it's not required to find methods/fields/...
This logic is now extracted to JavaMemberResolver, which is passed to a scope
and is used to resolve its members ('members' here means classes, namespaces,
functions, properties, constructors)
2013-09-04 21:55:05 +04:00
Alexander Udalov 5eb82ae45b Extract signature checking logic into an interface
Combine JavaMethodSignatureUtil and RawTypesCheck utility classes into a new
PsiBasedMethodSignatureChecker
2013-09-04 21:55:05 +04:00
Alexander Udalov e93c573898 Create JavaSignatureFormatter, a wrapper over PsiFormatUtil 2013-09-04 21:55:05 +04:00
Alexander Udalov 94a99d33ea Get rid of trace in JavaSupertypeResolver
The only place where it was used was INCOMPLETE_HIERARCHY report, which didn't
work at all (added TODO about it)
2013-09-04 21:55:05 +04:00
Alexander Udalov af2c03ad70 Get rid of trace in JavaClassResolver and JavaNamespaceResolver
Create TraceBasedErrorReporter which reports ABI errors to the trace
2013-09-04 21:55:05 +04:00
Alexander Udalov ab0224ef5c Minor, KotlinClassFileHeader now exposes a FqName 2013-09-04 21:55:05 +04:00
Alexander Udalov adc5f251ef Add source descriptors lookup to JavaResolverCache
Use JavaResolverCache instead of BindingTrace in JavaClassResolver and
JavaNamespaceResolver
2013-09-04 21:55:05 +04:00
Alexander Udalov 640b05cfe9 Extract enum method utilities from DescriptorResolver
Create overloaded versions which accept JetType as a parameter to use them in
JDR where there's no deferred types
2013-09-04 21:55:05 +04:00
Alexander Udalov d34a6d85e7 Remove BindingTrace from Java function and property resolvers
Extract FakeOverrideVisibilityResolver which invokes OverrideResolver with the
trace
2013-09-04 21:55:04 +04:00
Alexander Udalov 480ef9ea66 Create JavaResolverCache
An abstraction over BindingTrace which will be used in JDR
2013-09-04 21:55:04 +04:00
Alexander Udalov 760e4002cf Extract interface out of ExternalSignatureResolver 2013-09-04 21:55:04 +04:00
Alexander Udalov 16d63f6109 Create PropagatedMethodSignature nested class
Should be an abstraction over SignaturesPropagationData
2013-09-04 21:55:04 +04:00
Alexander Udalov 1cc4b42756 Use ExternalSignatureResolver to resolve field signatures 2013-09-04 21:55:04 +04:00
Alexander Udalov be3d835203 Refactor alternative method signatures
Create ExternalSignatureResolver which can resolve propagated and alternative
signatures, use it in JavaFunctionResolver and JavaConstructorResolver.

Move JavaValueParameterResolver.ValueParameters to SignaturesPropagationData,
since elsewhere it always had receiverType = null
2013-09-04 21:55:04 +04:00
Alexander Udalov 45346071a3 Minor, encapsulate logic 2013-09-04 21:55:04 +04:00
Alexander Udalov 517567fd24 Get rid of SAM_CONSTRUCTOR_TO_INTERFACE
use SamConstructorDescriptor instead
2013-09-04 21:55:04 +04:00
Alexander Udalov 4a620dfcbb Get rid of SAM_ADAPTER_FUNCTION_TO_ORIGINAL
Use SAM adapters hierarchy instead
2013-09-04 21:55:04 +04:00
Alexander Udalov f76942fd19 Get rid of JavaBindingContext.IS_DECLARED_IN_JAVA
Create specialized Java descriptor classes instead
2013-09-04 21:55:03 +04:00