Merge branch 'master' of git.labs.intellij.net:idea/community

This commit is contained in:
Bas Leijdekkers
2011-01-26 11:21:01 +01:00
4 changed files with 28 additions and 30 deletions
@@ -227,10 +227,6 @@ public class XDebugSessionImpl implements XDebugSession {
public void showSessionTab() {
RunContentDescriptor descriptor = getRunContentDescriptor();
ExecutionManager.getInstance(getProject()).getContentManager().showRunContent(DefaultDebugExecutor.getDebugExecutorInstance(), descriptor);
ProcessHandler handler = descriptor.getProcessHandler();
if (handler != null) {
handler.startNotify();
}
}
private static <B extends XBreakpoint<?>> XBreakpointType<?, ?> getBreakpointTypeClass(final XBreakpointHandler<B> handler) {
@@ -163,6 +163,8 @@ public class XDebuggerManagerImpl extends XDebuggerManager implements ProjectCom
if (!showToolWindowOnSuspendOnly) {
session.showSessionTab();
}
ProcessHandler handler = session.getDebugProcess().getProcessHandler();
handler.startNotify();
return session;
}
@@ -304,7 +304,7 @@ public class GroovyPsiElementFactoryImpl extends GroovyPsiElementFactory {
if (!(statement instanceof GrVariableDeclaration)) throw new IncorrectOperationException("");
GrVariableDeclaration decl = (GrVariableDeclaration) statement;
final GrTypeElement element = decl.getTypeElementGroovy();
if (element == null) throw new IncorrectOperationException("");
if (element == null) throw new IncorrectOperationException(typeText);
return element;
}
@@ -450,13 +450,13 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl implements
}
}
}
} else if (resolved == null) {
}
else if (resolved == null) {
GrExpression qualifier = getQualifierExpression();
if ("class".equals(getReferenceName())) {
result = createJavaLangClassType(JavaPsiFacade.getInstance(getProject()), (PsiClassType) JavaPsiFacade.getElementFactory(getProject())
.createTypeFromText(getText(), this));
result = createJavaLangClassType(JavaPsiFacade.getInstance(getProject()), getQualifierType());
}
else {
GrExpression qualifier = getQualifierExpression();
if (qualifier != null) {
PsiType qType = qualifier.getType();
if (qType instanceof PsiClassType) {
@@ -488,7 +488,7 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl implements
}
@Nullable
private PsiType createJavaLangClassType(JavaPsiFacade facade, PsiClassType type) {
private PsiType createJavaLangClassType(JavaPsiFacade facade, @Nullable PsiType type) {
PsiType result = null;
PsiClass javaLangClass = facade.findClass(CommonClassNames.JAVA_LANG_CLASS, getResolveScope());
if (javaLangClass != null) {
@@ -502,33 +502,33 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl implements
return result;
}
@Nullable
private PsiType getQualifierType() {
final GrExpression qualifier = getQualifierExpression();
if (qualifier == null) {
final PsiNamedElement context = PsiTreeUtil.getParentOfType(this, GroovyFile.class, PsiClass.class);
PsiClass contextClass = null;
if (context instanceof PsiClass) {
contextClass = (PsiClass)context;
}
else if (context instanceof GroovyFile) contextClass = ((GroovyFile)context).getScriptClass();
if (contextClass == null) return null;
return JavaPsiFacade.getElementFactory(getProject()).createType(contextClass);
}
else {
return qualifier.getType();
}
}
@Nullable
private PsiType getTypeForObjectGetClass(JavaPsiFacade facade, PsiMethod method) {
PsiType type = PsiUtil.getSmartReturnType(method);
if (type instanceof PsiClassType) {
PsiClass clazz = ((PsiClassType) type).resolve();
PsiClass clazz = ((PsiClassType)type).resolve();
if (clazz != null && CommonClassNames.JAVA_LANG_CLASS.equals(clazz.getQualifiedName())) {
PsiTypeParameter[] typeParameters = clazz.getTypeParameters();
if (typeParameters.length == 1) {
PsiClass qualifierClass = null;
GrExpression qualifier = getQualifierExpression();
if (qualifier != null) {
PsiType qualifierType = qualifier.getType();
if (qualifierType instanceof PsiClassType) {
qualifierClass = ((PsiClassType) qualifierType).resolve();
}
} else {
PsiNamedElement context = PsiTreeUtil.getParentOfType(this, PsiClass.class, GroovyFile.class);
if (context instanceof PsiClass) qualifierClass = (PsiClass) context;
else if (context instanceof GroovyFile) qualifierClass = ((GroovyFile) context).getScriptClass();
}
PsiSubstitutor substitutor = PsiSubstitutor.EMPTY;
if (qualifierClass != null) {
PsiType t = facade.getElementFactory().createType(qualifierClass);
substitutor = substitutor.put(typeParameters[0], t);
}
return facade.getElementFactory().createType(clazz, substitutor);
return createJavaLangClassType(facade, getQualifierType());
}
}
}