private static FieldInfo erase(final FieldInfo f) { if (!f.getDeclaringType().isGenericType()) { return f; } final Type<?> erasedType = erase(f.getDeclaringType()); final Object rawField = f.getRawField(); final MemberList<?> members = erasedType.findMembers( MemberType.fieldsOnly(), BindingFlags.AllDeclared, Type.FilterRawMember, rawField ); if (!members.isEmpty()) { return (FieldInfo) members.get(0); } throw ContractUtils.unreachable(); }
private static FieldInfo erase(final FieldInfo f) { if (!f.getDeclaringType().isGenericType()) { return f; } final Type<?> erasedType = erase(f.getDeclaringType()); final Object rawField = f.getRawField(); final MemberList<?> members = erasedType.findMembers( MemberType.fieldsOnly(), BindingFlags.AllDeclared, Type.FilterRawMember, rawField ); if (!members.isEmpty()) { return (FieldInfo) members.get(0); } throw ContractUtils.unreachable(); }
private static MethodBase erase(final MethodBase m) { if (m instanceof MethodInfo) { return ((MethodInfo) m).getErasedMethodDefinition(); } if (!m.getDeclaringType().isGenericType()) { return m; } final Type<?> erasedType = erase(m.getDeclaringType()); final Object rawMethod = ((ConstructorInfo) m).getRawConstructor(); final MemberList<?> members = erasedType.findMembers( MemberType.constructorsOnly(), BindingFlags.AllDeclared, Type.FilterRawMember, rawMethod ); if (!members.isEmpty()) { return (MethodBase) members.get(0); } throw ContractUtils.unreachable(); }
private static MethodBase erase(final MethodBase m) { if (m instanceof MethodInfo) { return ((MethodInfo) m).getErasedMethodDefinition(); } if (!m.getDeclaringType().isGenericType()) { return m; } final Type<?> erasedType = erase(m.getDeclaringType()); final Object rawMethod = ((ConstructorInfo) m).getRawConstructor(); final MemberList<?> members = erasedType.findMembers( MemberType.constructorsOnly(), BindingFlags.AllDeclared, Type.FilterRawMember, rawMethod ); if (!members.isEmpty()) { return (MethodBase) members.get(0); } throw ContractUtils.unreachable(); }
.findMembers( MemberType.methodsOnly(), BindingFlags.AllDeclared,
.findMembers( MemberType.methodsOnly(), BindingFlags.AllDeclared,
.findMembers( MemberType.methodsOnly(), BindingFlags.AllDeclared,
final Type<?> erasedType = declaringType.getErasedType(); final MemberList<? extends MemberInfo> members = erasedType.findMembers( MemberType.methodsOnly(), BindingFlags.fromMember(this),
final Type<?> erasedType = declaringType.getErasedType(); final MemberList<? extends MemberInfo> members = erasedType.findMembers( MemberType.methodsOnly(), BindingFlags.fromMember(this),