question: 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 ) ; } }
target:  Fill in definition of class `c' from corresponding class or source file.