createTypeConstructors(context);// create type constructors for classes and generic parameters
resolveTypesInClassHeaders(context);// Generic bounds and types in supertype lists (no expressions or constructor resolution)
checkTypesInClassHeaders(context);// Generic bounds and supertype lists
returncontext;
createTypeConstructors();// create type constructors for classes and generic parameters
resolveTypesInClassHeaders();// Generic bounds and types in supertype lists (no expressions or constructor resolution)
checkTypesInClassHeaders();// Generic bounds and supertype lists
}
privatevoidcollectNamespacesAndClassifiers(
@NotNullfinalJetScopeouterScope,
@NotNullfinalNamespaceLikeowner,
@NotNullCollection<JetDeclaration>declarations,
@NotNullfinalTopDownAnalysisContextcontext){
@NotNullCollection<JetDeclaration>declarations){
for(JetDeclarationdeclaration:declarations){
declaration.accept(newJetVisitorVoid(){
@Override
...
...
@@ -72,26 +52,26 @@ public class TypeHierarchyResolver {
Collections.<AnnotationDescriptor>emptyList(),// TODO
name
);
namespaceDescriptor.initialize(newWritableScopeImpl(JetScope.EMPTY,namespaceDescriptor,trace.getErrorHandler()).setDebugName("Namespace member scope"));
namespaceDescriptor.initialize(newWritableScopeImpl(JetScope.EMPTY,namespaceDescriptor,context.getTrace().getErrorHandler()).setDebugName("Namespace member scope"));
MutableClassDescriptormutableClassDescriptor=newMutableClassDescriptor(trace,classObjectDescriptor,outerScope,ClassKind.CLASS);// TODO : Special kind for enum entry classes?
MutableClassDescriptormutableClassDescriptor=newMutableClassDescriptor(context.getTrace(),classObjectDescriptor,outerScope,ClassKind.CLASS);// TODO : Special kind for enum entry classes?
visitClassOrObject(
enumEntry,
(Map)context.getClasses(),
...
...
@@ -134,7 +114,7 @@ public class TypeHierarchyResolver {