View | Details | Raw Unified | Return to bug 124611
Collapse All | Expand All

(-)model/org/eclipse/jdt/internal/core/SourceMapper.java (-5 / +23 lines)
Lines 34-39 Link Here
34
import org.eclipse.core.runtime.IPath;
34
import org.eclipse.core.runtime.IPath;
35
import org.eclipse.core.runtime.IStatus;
35
import org.eclipse.core.runtime.IStatus;
36
import org.eclipse.core.runtime.Path;
36
import org.eclipse.core.runtime.Path;
37
import org.eclipse.jdt.core.IClassFile;
37
import org.eclipse.jdt.core.IField;
38
import org.eclipse.jdt.core.IField;
38
import org.eclipse.jdt.core.IJavaElement;
39
import org.eclipse.jdt.core.IJavaElement;
39
import org.eclipse.jdt.core.IMember;
40
import org.eclipse.jdt.core.IMember;
Lines 690-700 Link Here
690
			IType currentType = this.types[typeDepth];
691
			IType currentType = this.types[typeDepth];
691
			char[][] parameterTypes = methodInfo.parameterTypes;
692
			char[][] parameterTypes = methodInfo.parameterTypes;
692
			if (parameterTypes != null && methodInfo.isConstructor && currentType.getDeclaringType() != null) {
693
			if (parameterTypes != null && methodInfo.isConstructor && currentType.getDeclaringType() != null) {
693
				int length = parameterTypes.length;
694
				IType declaringType = currentType.getDeclaringType();
694
				char[][] newParameterTypes = new char[length+1][];
695
				String declaringTypeName = declaringType.getElementName();
695
				newParameterTypes[0] = currentType.getDeclaringType().getElementName().toCharArray();
696
				if (declaringTypeName.length() == 0) {
696
				System.arraycopy(parameterTypes, 0, newParameterTypes, 1, length);
697
					IClassFile classFile = declaringType.getClassFile();
697
				this.methodParameterTypes[typeDepth] = newParameterTypes;
698
					if (classFile != null) {
699
						int length = parameterTypes.length;
700
						char[][] newParameterTypes = new char[length+1][];
701
						declaringTypeName = classFile.getElementName();
702
						declaringTypeName = declaringTypeName.substring(0, declaringTypeName.indexOf('.'));
703
						newParameterTypes[0] = declaringTypeName.toCharArray();
704
						System.arraycopy(parameterTypes, 0, newParameterTypes, 1, length);
705
						this.methodParameterTypes[typeDepth] = newParameterTypes;
706
					} else {
707
						this.methodParameterTypes[typeDepth] = parameterTypes;
708
					}
709
				} else {
710
					int length = parameterTypes.length;
711
					char[][] newParameterTypes = new char[length+1][];
712
					newParameterTypes[0] = declaringTypeName.toCharArray();
713
					System.arraycopy(parameterTypes, 0, newParameterTypes, 1, length);
714
					this.methodParameterTypes[typeDepth] = newParameterTypes;
715
				}
698
			} else {
716
			} else {
699
				this.methodParameterTypes[typeDepth] = parameterTypes;
717
				this.methodParameterTypes[typeDepth] = parameterTypes;
700
			}
718
			}

Return to bug 124611