@Override
 public void visit(Tree.Return that) {
   ProducedType ort = requiredType;
   requiredType = CeylonContentProposer.type(that.getDeclaration());
   super.visit(that);
   requiredType = ort;
 }
 public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
   try {
     if (lastOffset >= 0 && offset > 0 && !isIdentifierCharacter(viewer, offset)) {
       // user typed a whitespace char with an open
       // completions window, so close the window
       return NO_COMPLETIONS;
     }
   } catch (BadLocationException e1) {
     e1.printStackTrace();
     return NO_COMPLETIONS;
   }
   if (offset == lastOffset) {
     filter = !filter;
   }
   lastOffset = offset;
   try {
     return contentProposer.getContentProposals(
         editor.getParseController(), offset, viewer, filter);
   } catch (Exception e) {
     e.printStackTrace();
     return NO_COMPLETIONS;
   }
 }