@Override public Collection<JetType> invoke() { if (resolveSession.isClassSpecial( DescriptorUtils.getFQName(LazyClassDescriptor.this))) { return Collections.emptyList(); } else { JetClassOrObject classOrObject = declarationProvider.getOwnerInfo().getCorrespondingClassOrObject(); if (classOrObject == null) { return Collections.emptyList(); } else { List<JetType> allSupertypes = resolveSession .getInjector() .getDescriptorResolver() .resolveSupertypes( getScopeForClassHeaderResolution(), LazyClassDescriptor.this, classOrObject, resolveSession.getTrace()); return Lists.newArrayList( Collections2.filter(allSupertypes, VALID_SUPERTYPE)); } } }
@NotNull private List<AnnotationDescriptor> resolveAnnotations() { JetClassLikeInfo classInfo = declarationProvider.getOwnerInfo(); JetModifierList modifierList = classInfo.getModifierList(); if (modifierList != null) { AnnotationResolver annotationResolver = resolveSession.getInjector().getAnnotationResolver(); JetScope scopeForDeclaration = getScopeProvider().getResolutionScopeForDeclaration(classInfo.getScopeAnchor()); return annotationResolver.resolveAnnotationsWithArguments( scopeForDeclaration, modifierList, resolveSession.getTrace()); } else { return Collections.emptyList(); } }
@Override public List<AnnotationDescriptor> getAnnotations() { return Collections.emptyList(); // TODO }
@Override public Collection<JetType> invoke(Boolean firstTime) { return Collections.emptyList(); }