use ICompletionProposalInfo extracted interface instead of ProposalInfo class
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/AbstractScriptCompletionProposal.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/AbstractScriptCompletionProposal.java
index dcb5d29..c33e604 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/AbstractScriptCompletionProposal.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/AbstractScriptCompletionProposal.java
@@ -185,7 +185,7 @@
 	private int fCursorPosition;
 	private Image fImage;
 	private IContextInformation fContextInformation;
-	private ProposalInfo fProposalInfo;
+	private ICompletionProposalInfo fProposalInfo;
 	private char[] fTriggerCharacters;
 	private String fSortString;
 	private int fRelevance;
@@ -230,7 +230,7 @@
 	 *            The additional information associated with this proposal or
 	 *            <code>null</code>
 	 */
-	public void setProposalInfo(ProposalInfo proposalInfo) {
+	public void setProposalInfo(ICompletionProposalInfo proposalInfo) {
 		fProposalInfo = proposalInfo;
 	}
 
@@ -240,7 +240,7 @@
 	 * 
 	 * @return the additional proposal info, or <code>null</code> if none exists
 	 */
-	public ProposalInfo getProposalInfo() {
+	public ICompletionProposalInfo getProposalInfo() {
 		return fProposalInfo;
 	}
 
@@ -989,13 +989,14 @@
 	 *         <code>null</code>
 	 */
 	public IModelElement getModelElement() {
-		if (getProposalInfo() != null)
+		final ICompletionProposalInfo proposalInfo = getProposalInfo();
+		if (proposalInfo != null && proposalInfo instanceof ProposalInfo) {
 			try {
-				return getProposalInfo().getModelElement();
+				return ((ProposalInfo) proposalInfo).getModelElement();
 			} catch (ModelException x) {
 				DLTKUIPlugin.log(x);
 			}
-
+		}
 		return null;
 	}
 }
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptCompletionProposal.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptCompletionProposal.java
index 00a088d..1ee6b62 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptCompletionProposal.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptCompletionProposal.java
@@ -102,7 +102,7 @@
 	 * 
 	 * @return the additional proposal info, or <code>null</code> if none exists
 	 */
-	public final ProposalInfo getProposalInfo() {
+	public final ICompletionProposalInfo getProposalInfo() {
 		if (!fProposalInfoComputed) {
 			setProposalInfo(computeProposalInfo());
 		}
@@ -110,7 +110,7 @@
 		return super.getProposalInfo();
 	}
 
-	protected ProposalInfo computeProposalInfo() {
+	protected ICompletionProposalInfo computeProposalInfo() {
 		return null;
 	}
 
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptTypeCompletionProposal.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptTypeCompletionProposal.java
index bb51422..4df505d 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptTypeCompletionProposal.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/LazyScriptTypeCompletionProposal.java
@@ -252,7 +252,7 @@
 		return isInDoc() ? getDocTriggers() : getTypeTriggers();
 	}
 
-	protected ProposalInfo computeProposalInfo() {
+	protected ICompletionProposalInfo computeProposalInfo() {
 		if (fSourceModule != null) {
 			IScriptProject project = fSourceModule.getScriptProject();
 			if (project != null)
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptMethodCompletionProposal.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptMethodCompletionProposal.java
index d6ce208..abaf37b 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptMethodCompletionProposal.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/ui/text/completion/ScriptMethodCompletionProposal.java
@@ -201,7 +201,7 @@
 	}
 
 	@Override
-	protected ProposalInfo computeProposalInfo() {
+	protected ICompletionProposalInfo computeProposalInfo() {
 		IScriptProject project = fInvocationContext.getProject();
 		if (project != null)
 			return new MethodProposalInfo(project, fProposal);