Lines 1-5
Link Here
|
1 |
/******************************************************************************* |
1 |
/******************************************************************************* |
2 |
* Copyright (c) 2000, 2009 IBM Corporation and others. |
2 |
* Copyright (c) 2000, 2010 IBM Corporation and others. |
3 |
* All rights reserved. This program and the accompanying materials |
3 |
* All rights reserved. This program and the accompanying materials |
4 |
* are made available under the terms of the Eclipse Public License v1.0 |
4 |
* are made available under the terms of the Eclipse Public License v1.0 |
5 |
* which accompanies this distribution, and is available at |
5 |
* which accompanies this distribution, and is available at |
Lines 677-683
Link Here
|
677 |
* Returns IMPOSSIBLE_MATCH if it doesn't. |
677 |
* Returns IMPOSSIBLE_MATCH if it doesn't. |
678 |
*/ |
678 |
*/ |
679 |
protected int resolveLevelAsSubtype(char[] qualifiedPattern, ReferenceBinding type, TypeBinding[] argumentTypes) { |
679 |
protected int resolveLevelAsSubtype(char[] qualifiedPattern, ReferenceBinding type, TypeBinding[] argumentTypes) { |
680 |
if (type == null) return INACCURATE_MATCH; |
680 |
if (type == null || !type.isValidBinding()) return INACCURATE_MATCH; |
681 |
|
681 |
|
682 |
int level = resolveLevelForType(qualifiedPattern, type); |
682 |
int level = resolveLevelForType(qualifiedPattern, type); |
683 |
if (level != IMPOSSIBLE_MATCH) { |
683 |
if (level != IMPOSSIBLE_MATCH) { |
Lines 690-696
Link Here
|
690 |
|
690 |
|
691 |
// matches superclass |
691 |
// matches superclass |
692 |
if (!type.isInterface() && !CharOperation.equals(type.compoundName, TypeConstants.JAVA_LANG_OBJECT)) { |
692 |
if (!type.isInterface() && !CharOperation.equals(type.compoundName, TypeConstants.JAVA_LANG_OBJECT)) { |
693 |
level = resolveLevelAsSubtype(qualifiedPattern, type.superclass(), argumentTypes); |
693 |
ReferenceBinding superclass = type.superclass(); |
|
|
694 |
if (superclass == null || !superclass.isValidBinding()) return INACCURATE_MATCH; |
695 |
level = resolveLevelAsSubtype(qualifiedPattern, superclass, argumentTypes); |
694 |
if (level != IMPOSSIBLE_MATCH) { |
696 |
if (level != IMPOSSIBLE_MATCH) { |
695 |
if (argumentTypes != null) { |
697 |
if (argumentTypes != null) { |
696 |
// need to verify if method may be overridden |
698 |
// need to verify if method may be overridden |