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 264-269
Link Here
|
264 |
this.modifiers |= ClassFileConstants.AccStrictfp; |
264 |
this.modifiers |= ClassFileConstants.AccStrictfp; |
265 |
} |
265 |
} |
266 |
} |
266 |
} |
|
|
267 |
|
268 |
// Create a synthetic method that will simply call the super classes method. |
269 |
// Used when a public method is inherited from a non-public class into a public class. |
270 |
// See https://bugs.eclipse.org/bugs/show_bug.cgi?id=288658 |
271 |
public SyntheticMethodBinding(MethodBinding overridenMethodToBridge, SourceTypeBinding declaringClass) { |
272 |
|
273 |
this.declaringClass = declaringClass; |
274 |
this.selector = overridenMethodToBridge.selector; |
275 |
// amongst other, clear the AccGenericSignature, so as to ensure no remains of original inherited persist (101794) |
276 |
// also use the modifiers from the target method, as opposed to inherited one (147690) |
277 |
this.modifiers = (overridenMethodToBridge.modifiers | ClassFileConstants.AccBridge | ClassFileConstants.AccSynthetic) & ~(ClassFileConstants.AccAbstract | ClassFileConstants.AccNative | ClassFileConstants.AccFinal | ExtraCompilerModifiers.AccGenericSignature); |
278 |
this.tagBits |= (TagBits.AnnotationResolved | TagBits.DeprecatedAnnotationResolved); |
279 |
this.returnType = overridenMethodToBridge.returnType; |
280 |
this.parameters = overridenMethodToBridge.parameters; |
281 |
this.thrownExceptions = overridenMethodToBridge.thrownExceptions; |
282 |
this.targetMethod = overridenMethodToBridge; |
283 |
this.purpose = SyntheticMethodBinding.SuperMethodAccess; |
284 |
SyntheticMethodBinding[] knownAccessMethods = declaringClass.syntheticMethods(); |
285 |
int methodId = knownAccessMethods == null ? 0 : knownAccessMethods.length; |
286 |
this.index = methodId; |
287 |
} |
267 |
|
288 |
|
268 |
/** |
289 |
/** |
269 |
* An constructor accessor is a constructor with an extra argument (declaringClass), in case of |
290 |
* An constructor accessor is a constructor with an extra argument (declaringClass), in case of |