Expression expr= ASTResolving.getInitExpression(decl.getReturnType());
Expression expr= ASTResolving.getInitExpression(decl.getReturnType(), decl.getExtraDimensions());
	public static void addAbstractMethodProposals(ICorrectionContext context, List proposals) throws CoreException {		ICompilationUnit cu= context.getCompilationUnit();		CompilationUnit astRoot= context.getASTRoot();		ASTNode selectedNode= context.getCoveringNode();		if (selectedNode == null) {			return;		}		MethodDeclaration decl;		if (selectedNode instanceof SimpleName) {			decl= (MethodDeclaration) selectedNode.getParent();		} else if (selectedNode instanceof MethodDeclaration) {			decl= (MethodDeclaration) selectedNode;		} else {			return;		}			ASTNode parentType= ASTResolving.findParentType(decl);		boolean parentIsAbstract= (parentType instanceof TypeDeclaration) && Modifier.isAbstract(((TypeDeclaration) parentType).getModifiers());				int endPos= decl.getStartPosition() + decl.getLength() - 1;		IBuffer buffer= cu.getBuffer();		boolean hasNoBody= buffer.getLength() > endPos && buffer.getChar(endPos) == ';';				if (context.getProblemId() == IProblem.AbstractMethodInAbstractClass || parentIsAbstract) {			ASTRewrite rewrite= new ASTRewrite(decl.getParent());						AST ast= astRoot.getAST();			MethodDeclaration modifiedNode= ast.newMethodDeclaration();			modifiedNode.setConstructor(decl.isConstructor());			modifiedNode.setExtraDimensions(decl.getExtraDimensions());			modifiedNode.setModifiers(decl.getModifiers() & ~Modifier.ABSTRACT);			rewrite.markAsModified(decl, modifiedNode);			if (hasNoBody) {				Block newBody= ast.newBlock();				rewrite.markAsInserted(newBody);				decl.setBody(newBody);				Expression expr= ASTResolving.getInitExpression(decl.getReturnType());				if (expr != null) {					ReturnStatement returnStatement= ast.newReturnStatement();					returnStatement.setExpression(expr);					newBody.statements().add(returnStatement);				}			}				String label= CorrectionMessages.getString("ModifierCorrectionSubProcessor.removeabstract.description");			Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);			ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, cu, rewrite, 1, image);			proposal.ensureNoModifications();			proposals.add(proposal);		}						if (context.getProblemId() == IProblem.AbstractMethodInAbstractClass && (parentType instanceof TypeDeclaration)) {			ASTRewriteCorrectionProposal proposal= getMakeTypeStaticProposal(cu, (TypeDeclaration) parentType);			proposals.add(proposal);		}					}