private void fillIn(ClassSymbol c){
  if (completionFailureName == c.fullname) {
    throw new CompletionFailure(c,"user-selected completion failure by class name");
  }
  currentOwner=c;
  warnedAttrs.clear();
  JavaFileObject classfile=c.classfile;
  if (classfile != null) {
    JavaFileObject previousClassFile=currentClassFile;
    try {
      if (filling) {
        Assert.error("Filling " + classfile.toUri() + " during "+ previousClassFile);
      }
      currentClassFile=classfile;
      if (verbose) {
        log.printVerbose("loading",currentClassFile.toString());
      }
      if (classfile.getKind() == JavaFileObject.Kind.CLASS) {
        filling=true;
        try {
          bp=0;
          buf=readInputStream(buf,classfile.openInputStream());
          readClassFile(c);
          if (!missingTypeVariables.isEmpty() && !foundTypeVariables.isEmpty()) {
            List<Type> missing=missingTypeVariables;
            List<Type> found=foundTypeVariables;
            missingTypeVariables=List.nil();
            foundTypeVariables=List.nil();
            filling=false;
            ClassType ct=(ClassType)currentOwner.type;
            ct.supertype_field=types.subst(ct.supertype_field,missing,found);
            ct.interfaces_field=types.subst(ct.interfaces_field,missing,found);
          }
 else           if (missingTypeVariables.isEmpty() != foundTypeVariables.isEmpty()) {
            Name name=missingTypeVariables.head.tsym.name;
            throw badClassFile("undecl.type.var",name);
          }
        }
  finally {
          missingTypeVariables=List.nil();
          foundTypeVariables=List.nil();
          filling=false;
        }
      }
 else {
        if (sourceCompleter != null) {
          sourceCompleter.complete(c);
        }
 else {
          throw new IllegalStateException("Source completer required to read " + classfile.toUri());
        }
      }
      return;
    }
 catch (    IOException ex) {
      throw badClassFile("unable.to.access.file",ex.getMessage());
    }
 finally {
      currentClassFile=previousClassFile;
    }
  }
 else {
    JCDiagnostic diag=diagFactory.fragment("class.file.not.found",c.flatname);
    throw newCompletionFailure(c,diag);
  }
}

private void fillIn ( ClassSymbol c ) { if ( completionFailureName == c . fullname ) { throw new CompletionFailure ( c , "user-selected completion failure by class name" ) ; } currentOwner = c ; warnedAttrs . clear ( ) ; JavaFileObject classfile = c . classfile ; if ( classfile != null ) { JavaFileObject previousClassFile = currentClassFile ; try { if ( filling ) { Assert . error ( "Filling " + classfile . toUri ( ) + " during " + previousClassFile ) ; } currentClassFile = classfile ; if ( verbose ) { log . printVerbose ( "loading" , currentClassFile . toString ( ) ) ; } if ( classfile . getKind ( ) == JavaFileObject . Kind . CLASS ) { filling = true ; try { bp = 0 ; buf = readInputStream ( buf , classfile . openInputStream ( ) ) ; readClassFile ( c ) ; if ( ! missingTypeVariables . isEmpty ( ) && ! foundTypeVariables . isEmpty ( ) ) { List < Type > missing = missingTypeVariables ; List < Type > found = foundTypeVariables ; missingTypeVariables = List . nil ( ) ; foundTypeVariables = List . nil ( ) ; filling = false ; ClassType ct = ( ClassType ) currentOwner . type ; ct . supertype_field = types . subst ( ct . supertype_field , missing , found ) ; ct . interfaces_field = types . subst ( ct . interfaces_field , missing , found ) ; } else if ( missingTypeVariables . isEmpty ( ) != foundTypeVariables . isEmpty ( ) ) { Name name = missingTypeVariables . head . tsym . name ; throw badClassFile ( "undecl.type.var" , name ) ; } } finally { missingTypeVariables = List . nil ( ) ; foundTypeVariables = List . nil ( ) ; filling = false ; } } else { if ( sourceCompleter != null ) { sourceCompleter . complete ( c ) ; } else { throw new IllegalStateException ( "Source completer required to read " + classfile . toUri ( ) ) ; } } return ; } catch ( IOException ex ) { throw badClassFile ( "unable.to.access.file" , ex . getMessage ( ) ) ; } finally { currentClassFile = previousClassFile ; } } else { JCDiagnostic diag = diagFactory . fragment ( "class.file.not.found" , c . flatname ) ; throw newCompletionFailure ( c , diag ) ; } }
fill in definition of class ` c ' from corresponding class or source file .
