Bug 46088 Create method quick fix declares Object as return type [quick fix]
When you write the following code Bla var = getMyBla(); and press Ctrl-1, you can have the method "getMyBla" created. However, if the type Bla is not (yet) known, the method gets declared as private Object getMyBla() { ... } If you press Ctrl-1 again, the import for Bla is added. If the order of the two quickfixes was reversed, you'd get the correct method declaration.
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/NewVariableCompletionProposal.java
markAsLinked(rewrite, frag.getName(), true, KEY_NAME); 
							markAsLinked(rewrite, expression.getType(), false, KEY_TYPE); 
							
							return rewrite;
						}			
					}			
				}
			}
			
			
			VariableDeclarationFragment newDeclFrag= ast.newVariableDeclarationFragment();
			VariableDeclarationStatement newDecl= ast.newVariableDeclarationStatement(newDeclFrag);
			newDeclFrag.setName(ast.newSimpleName(node.getIdentifier()));
			newDecl.setType(evaluateVariableType(ast));
			newDeclFrag.setInitializer(ASTNodeFactory.newDefaultExpression(ast, newDecl.getType(), 0));
			markAsLinked(rewrite, node, true, KEY_NAME); 
			markAsLinked(rewrite, newDecl.getType(), false, KEY_TYPE);
			markAsLinked(rewrite, newDeclFrag.getName(), false, KEY_NAME);
			Statement statement= ASTResolving.findParentStatement(node);
			if (statement != null) {
				List list= ASTNodes.getContainingList(statement);
				while (list == null && statement.getParent() instanceof Statement) { 
					statement= (Statement) statement.getParent();
					list= ASTNodes.getContainingList(statement);
				}
				if (list != null) {
					list.add(list.indexOf(statement), newDecl);
					rewrite.markAsInserted(newDecl);
					return rewrite;