mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-04-29 19:45:01 +02:00
cleanup build warnings
This commit is contained in:
parent
92d74a7ca9
commit
611017bdcf
8 changed files with 67 additions and 70 deletions
|
@ -20,7 +20,6 @@ import org.eclipse.cdt.core.model.ICElement;
|
|||
import org.eclipse.cdt.core.model.IInclude;
|
||||
import org.eclipse.cdt.core.model.IParent;
|
||||
import org.eclipse.cdt.core.model.IProblemRequestor;
|
||||
import org.eclipse.cdt.core.model.ISourceManipulation;
|
||||
import org.eclipse.cdt.core.model.ISourceRange;
|
||||
import org.eclipse.cdt.core.model.ISourceReference;
|
||||
import org.eclipse.cdt.core.model.ITranslationUnit;
|
||||
|
@ -179,46 +178,46 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ISourceManipulation
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ISourceManipulation#copy(org.eclipse.cdt.core.model.ICElement, org.eclipse.cdt.core.model.ICElement, java.lang.String, boolean, org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
public void copy(ICElement container, ICElement sibling, String rename, boolean force,
|
||||
IProgressMonitor monitor) throws CModelException {
|
||||
getSourceManipulationInfo().copy(container, sibling, rename, force, monitor);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ISourceManipulation
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ISourceManipulation#delete(boolean, org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
public void delete(boolean force, IProgressMonitor monitor) throws CModelException {
|
||||
getSourceManipulationInfo().delete(force, monitor);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ISourceManipulation
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ISourceManipulation#move(org.eclipse.cdt.core.model.ICElement, org.eclipse.cdt.core.model.ICElement, java.lang.String, boolean, org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
public void move(ICElement container, ICElement sibling, String rename, boolean force,
|
||||
IProgressMonitor monitor) throws CModelException {
|
||||
getSourceManipulationInfo().move(container, sibling, rename, force, monitor);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ISourceManipulation
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ISourceManipulation#rename(java.lang.String, boolean, org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
public void rename(String name, boolean force, IProgressMonitor monitor)
|
||||
throws CModelException {
|
||||
getSourceManipulationInfo().rename(name, force, monitor);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ISourceReference
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ISourceReference#getSource()
|
||||
*/
|
||||
public String getSource() throws CModelException {
|
||||
return getSourceManipulationInfo().getSource();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ISourceReference
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ISourceReference#getSourceRange()
|
||||
*/
|
||||
public ISourceRange getSourceRange() throws CModelException {
|
||||
return getSourceManipulationInfo().getSourceRange();
|
||||
|
@ -240,7 +239,9 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
|
|||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.cdt.internal.core.model.CFile#buildStructure(CFileInfo, IProgressMonitor)
|
||||
* @param info
|
||||
* @param monitor
|
||||
* @throws CModelException
|
||||
*/
|
||||
protected void buildStructure(OpenableInfo info, IProgressMonitor monitor) throws CModelException {
|
||||
if (monitor != null && monitor.isCanceled()) return;
|
||||
|
@ -271,6 +272,7 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
|
|||
CModelManager.getDefault().putInfo(this, info);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if this handle represents the same Java element
|
||||
* as the given handle.
|
||||
|
@ -284,8 +286,8 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
|
|||
return super.equals(o) && !((ITranslationUnit)o).isWorkingCopy();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see IWorkingCopy#findSharedWorkingCopy(IBufferFactory)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ITranslationUnit#findSharedWorkingCopy(org.eclipse.cdt.internal.core.model.IBufferFactory)
|
||||
*/
|
||||
public IWorkingCopy findSharedWorkingCopy(IBufferFactory factory) {
|
||||
|
||||
|
@ -326,8 +328,8 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
|
|||
newElements.put(element, info);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.cdt.internal.core.model.Openable#generateInfos(OpenableInfo, IProgressMonitor, Map, IResource)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.model.Openable#generateInfos(org.eclipse.cdt.internal.core.model.OpenableInfo, org.eclipse.core.runtime.IProgressMonitor, java.util.Map, org.eclipse.core.resources.IResource)
|
||||
*/
|
||||
protected boolean generateInfos(OpenableInfo info, IProgressMonitor pm, Map newElements, IResource underlyingResource) throws CModelException {
|
||||
// put the info now, because getting the contents requires it
|
||||
|
@ -357,7 +359,7 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
|
|||
return unitInfo.isStructureKnown();
|
||||
}
|
||||
|
||||
/**
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ITranslationUnit#getContents()
|
||||
*/
|
||||
public char[] getContents() {
|
||||
|
@ -369,16 +371,16 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.cdt.core.model.ITranslationUnit#getSharedWorkingCopy(IProgressMonitor, IBufferFactory)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ITranslationUnit#getSharedWorkingCopy(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.cdt.internal.core.model.IBufferFactory)
|
||||
*/
|
||||
public IWorkingCopy getSharedWorkingCopy(IProgressMonitor monitor,IBufferFactory factory)
|
||||
throws CModelException {
|
||||
return getSharedWorkingCopy(monitor, factory, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.cdt.core.model.ITranslationUnit#getSharedWorkingCopy(IProgressMonitor, IBufferFactory)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ITranslationUnit#getSharedWorkingCopy(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.cdt.internal.core.model.IBufferFactory, org.eclipse.cdt.core.model.IProblemRequestor)
|
||||
*/
|
||||
public IWorkingCopy getSharedWorkingCopy(IProgressMonitor monitor,IBufferFactory factory, IProblemRequestor requestor)
|
||||
throws CModelException {
|
||||
|
@ -409,17 +411,16 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
|
|||
return (IWorkingCopy)op.getResultElements()[0];
|
||||
}
|
||||
}
|
||||
/**
|
||||
*
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ITranslationUnit#getWorkingCopy()
|
||||
*/
|
||||
public IWorkingCopy getWorkingCopy()throws CModelException{
|
||||
return this.getWorkingCopy(null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
* @see org.eclipse.cdt.core.model.ITranslationUnit#getWorkingCopy()
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ITranslationUnit#getWorkingCopy(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.cdt.internal.core.model.IBufferFactory)
|
||||
*/
|
||||
public IWorkingCopy getWorkingCopy(IProgressMonitor monitor, IBufferFactory factory)throws CModelException{
|
||||
WorkingCopy workingCopy = new WorkingCopy(getParent(), getFile(), factory);
|
||||
|
@ -435,32 +436,34 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
|
|||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.IOpenable#isConsistent()
|
||||
*/
|
||||
public boolean isConsistent() throws CModelException {
|
||||
return CModelManager.getDefault().getElementsOutOfSynchWithBuffers().get(this) == null;
|
||||
}
|
||||
|
||||
/**
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.model.Openable#isSourceElement()
|
||||
*/
|
||||
protected boolean isSourceElement() {
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.ITranslationUnit#isWorkingCopy()
|
||||
*/
|
||||
public boolean isWorkingCopy() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.cdt.core.model.IOpenable#makeConsistent(IProgressMonitor)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.core.model.IOpenable#makeConsistent(org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
public void makeConsistent(IProgressMonitor pm) throws CModelException {
|
||||
makeConsistent(pm, false);
|
||||
}
|
||||
|
||||
public void makeConsistent(IProgressMonitor pm, boolean forced) throws CModelException {
|
||||
if (!isConsistent() || forced) {
|
||||
// create a new info and make it the current info
|
||||
|
@ -469,8 +472,8 @@ public class TranslationUnit extends Openable implements ITranslationUnit {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see org.eclipse.cdt.internal.core.model.Openable#openBuffer(IProgressMonitor)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.cdt.internal.core.model.Openable#openBuffer(org.eclipse.core.runtime.IProgressMonitor)
|
||||
*/
|
||||
protected IBuffer openBuffer(IProgressMonitor pm) throws CModelException {
|
||||
|
||||
|
|
|
@ -20,7 +20,6 @@ import org.eclipse.core.runtime.IAdaptable;
|
|||
import org.eclipse.core.runtime.IStatus;
|
||||
import org.eclipse.core.runtime.MultiStatus;
|
||||
import org.eclipse.core.runtime.Status;
|
||||
import org.eclipse.jface.action.IAction;
|
||||
import org.eclipse.jface.dialogs.ErrorDialog;
|
||||
import org.eclipse.jface.dialogs.IDialogConstants;
|
||||
import org.eclipse.jface.dialogs.MessageDialog;
|
||||
|
@ -326,11 +325,13 @@ class CViewDropAdapter extends PluginDropAdapter implements IOverwriteQuery {
|
|||
return result;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.ViewerDropAdapter#performDrop(java.lang.Object)
|
||||
*/
|
||||
/**
|
||||
* Invoked when an action occurs.
|
||||
* Argument context is the Window which contains the UI from which this action was fired.
|
||||
* This default implementation prints the name of this class and its label.
|
||||
* @see IAction#run
|
||||
*/
|
||||
public boolean performDrop(final Object data) {
|
||||
isCanceled = false;
|
||||
|
|
|
@ -41,10 +41,8 @@ import org.eclipse.swt.widgets.Menu;
|
|||
import org.eclipse.ui.IActionBars;
|
||||
import org.eclipse.ui.IWorkbenchActionConstants;
|
||||
import org.eclipse.ui.actions.ActionGroup;
|
||||
import org.eclipse.ui.part.IPage;
|
||||
import org.eclipse.ui.part.IPageSite;
|
||||
import org.eclipse.ui.part.Page;
|
||||
import org.eclipse.ui.views.contentoutline.ContentOutlinePage;
|
||||
import org.eclipse.ui.views.contentoutline.IContentOutlinePage;
|
||||
|
||||
public class CContentOutlinePage extends Page implements IContentOutlinePage, ISelectionChangedListener {
|
||||
|
@ -142,8 +140,8 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
|
|||
fRefactoringActionGroup.fillContextMenu(menu);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ContentOutlinePage#createControl
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.part.IPage#createControl(org.eclipse.swt.widgets.Composite)
|
||||
*/
|
||||
public void createControl(Composite parent) {
|
||||
treeViewer = new ProblemTreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
|
||||
|
@ -227,8 +225,8 @@ public class CContentOutlinePage extends Page implements IContentOutlinePage, IS
|
|||
super.dispose();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see IPage#setActionBars(IActionBars)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.part.IPage#setActionBars(org.eclipse.ui.IActionBars)
|
||||
*/
|
||||
public void setActionBars(IActionBars actionBars) {
|
||||
IToolBarManager toolBarManager= actionBars.getToolBarManager();
|
||||
|
|
|
@ -82,7 +82,6 @@ import org.eclipse.ui.ide.IDE;
|
|||
import org.eclipse.ui.part.EditorActionBarContributor;
|
||||
import org.eclipse.ui.part.IShowInSource;
|
||||
import org.eclipse.ui.part.ShowInContext;
|
||||
import org.eclipse.ui.texteditor.AbstractTextEditor;
|
||||
import org.eclipse.ui.texteditor.ChainedPreferenceStore;
|
||||
import org.eclipse.ui.texteditor.ContentAssistAction;
|
||||
import org.eclipse.ui.texteditor.IEditorStatusLine;
|
||||
|
@ -161,7 +160,7 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
|||
super();
|
||||
}
|
||||
|
||||
/**
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.texteditor.AbstractDecoratedTextEditor#initializeEditor()
|
||||
*/
|
||||
protected void initializeEditor() {
|
||||
|
@ -182,8 +181,8 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
|||
fCEditorErrorTickUpdater = new CEditorErrorTickUpdater(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* @see AbstractTextEditor#doSetInput(IEditorInput)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.texteditor.AbstractTextEditor#doSetInput(org.eclipse.ui.IEditorInput)
|
||||
*/
|
||||
protected void doSetInput(IEditorInput input) throws CoreException {
|
||||
super.doSetInput(input);
|
||||
|
@ -228,8 +227,8 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
|||
return fOutlinePage;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see AbstractTextEditor#getAdapter(Class)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.core.runtime.IAdaptable#getAdapter(java.lang.Class)
|
||||
*/
|
||||
public Object getAdapter(Class required) {
|
||||
if (IContentOutlinePage.class.equals(required)) {
|
||||
|
@ -298,8 +297,8 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ISelectionChangedListener#selectionChanged
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.ISelectionChangedListener#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent)
|
||||
*/
|
||||
public void selectionChanged(SelectionChangedEvent event) {
|
||||
ISelection sel = event.getSelection();
|
||||
|
@ -483,8 +482,8 @@ public class CEditor extends TextEditor implements ISelectionChangedListener, IS
|
|||
super.dispose();
|
||||
}
|
||||
|
||||
/*
|
||||
* @see AbstractTextEditor#canHandleMove(IEditorInput, IEditorInput)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.texteditor.AbstractTextEditor#canHandleMove(org.eclipse.ui.IEditorInput, org.eclipse.ui.IEditorInput)
|
||||
*/
|
||||
protected boolean canHandleMove(IEditorInput originalElement, IEditorInput movedElement) {
|
||||
String oldLanguage = ""; //$NON-NLS-1$
|
||||
|
|
|
@ -42,7 +42,6 @@ import org.eclipse.core.resources.ResourcesPlugin;
|
|||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.core.runtime.IProgressMonitor;
|
||||
import org.eclipse.core.runtime.Path;
|
||||
import org.eclipse.jface.action.IAction;
|
||||
import org.eclipse.jface.dialogs.ProgressMonitorDialog;
|
||||
import org.eclipse.jface.operation.IRunnableWithProgress;
|
||||
import org.eclipse.jface.text.ITextSelection;
|
||||
|
@ -130,8 +129,9 @@ public class OpenDeclarationsAction extends SelectionParseAction implements IUpd
|
|||
this.element = element;
|
||||
}
|
||||
}
|
||||
/**
|
||||
* @see IAction#actionPerformed
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.action.IAction#run()
|
||||
*/
|
||||
public void run() {
|
||||
final SelSearchNode selNode = getSelectedStringFromEditor();
|
||||
|
|
|
@ -11,7 +11,6 @@ import org.eclipse.cdt.internal.ui.text.CWordFinder;
|
|||
import org.eclipse.cdt.internal.ui.text.HTMLPrinter;
|
||||
import org.eclipse.cdt.ui.IFunctionSummary;
|
||||
import org.eclipse.jface.text.IRegion;
|
||||
import org.eclipse.jface.text.ITextHover;
|
||||
import org.eclipse.jface.text.ITextViewer;
|
||||
import org.eclipse.jface.text.Region;
|
||||
import org.eclipse.swt.graphics.Point;
|
||||
|
@ -24,8 +23,8 @@ public class CDocHover extends AbstractCEditorTextHover {
|
|||
public CDocHover() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ITextHover#getHoverInfo(ITextViewer, IRegion)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.text.ITextHover#getHoverInfo(org.eclipse.jface.text.ITextViewer, org.eclipse.jface.text.IRegion)
|
||||
*/
|
||||
public String getHoverInfo(ITextViewer viewer, IRegion region) {
|
||||
String expression = null;
|
||||
|
@ -66,8 +65,8 @@ public class CDocHover extends AbstractCEditorTextHover {
|
|||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see ITextHover#getHoverRegion(ITextViewer, int)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.text.ITextHover#getHoverRegion(org.eclipse.jface.text.ITextViewer, int)
|
||||
*/
|
||||
public IRegion getHoverRegion(ITextViewer viewer, int offset) {
|
||||
Point selectedRange = viewer.getSelectedRange();
|
||||
|
|
|
@ -11,7 +11,6 @@ import org.eclipse.jface.viewers.ILabelProvider;
|
|||
import org.eclipse.jface.viewers.ISelection;
|
||||
import org.eclipse.jface.viewers.ITreeContentProvider;
|
||||
import org.eclipse.jface.viewers.LabelProviderChangedEvent;
|
||||
import org.eclipse.jface.viewers.StructuredViewer;
|
||||
import org.eclipse.jface.viewers.TreeViewer;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
|
@ -127,8 +126,8 @@ public class ProblemTreeViewer extends TreeViewer implements IProblemChangedList
|
|||
return;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see StructuredViewer#handleInvalidSelection(ISelection, ISelection)
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.viewers.StructuredViewer#handleInvalidSelection(org.eclipse.jface.viewers.ISelection, org.eclipse.jface.viewers.ISelection)
|
||||
*/
|
||||
protected void handleInvalidSelection(ISelection invalidSelection, ISelection newSelection) {
|
||||
super.handleInvalidSelection(invalidSelection, newSelection);
|
||||
|
|
|
@ -14,12 +14,10 @@ import org.eclipse.cdt.debug.internal.ui.ICDebugHelpContextIds;
|
|||
import org.eclipse.cdt.debug.internal.ui.IInternalCDebugUIConstants;
|
||||
import org.eclipse.core.runtime.CoreException;
|
||||
import org.eclipse.debug.core.DebugPlugin;
|
||||
import org.eclipse.jface.action.Action;
|
||||
import org.eclipse.jface.dialogs.ErrorDialog;
|
||||
import org.eclipse.jface.text.source.IVerticalRulerInfo;
|
||||
import org.eclipse.ui.IWorkbenchPart;
|
||||
import org.eclipse.ui.help.WorkbenchHelp;
|
||||
import org.eclipse.ui.texteditor.IUpdate;
|
||||
|
||||
public class EnableDisableBreakpointRulerAction extends AbstractBreakpointRulerAction {
|
||||
|
||||
|
@ -34,8 +32,8 @@ public class EnableDisableBreakpointRulerAction extends AbstractBreakpointRulerA
|
|||
setId( IInternalCDebugUIConstants.ACTION_ENABLE_DISABLE_BREAKPOINT );
|
||||
}
|
||||
|
||||
/**
|
||||
* @see Action#run()
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.jface.action.IAction#run()
|
||||
*/
|
||||
public void run() {
|
||||
if ( getBreakpoint() != null ) {
|
||||
|
@ -50,8 +48,8 @@ public class EnableDisableBreakpointRulerAction extends AbstractBreakpointRulerA
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see IUpdate#update()
|
||||
/* (non-Javadoc)
|
||||
* @see org.eclipse.ui.texteditor.IUpdate#update()
|
||||
*/
|
||||
public void update() {
|
||||
setBreakpoint( determineBreakpoint() );
|
||||
|
|
Loading…
Add table
Reference in a new issue