8343693: [JVMCI] Override ModifiersProvider.isConcrete in ResolvedJavaType to be isArray() || !isAbstract()
Reviewed-by: never
This commit is contained in:
parent
7ae6069ee8
commit
8da6435d4d
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2014, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
@ -137,9 +137,11 @@ public interface ModifiersProvider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks that the method is concrete and not abstract.
|
* Returns true if this element is a method with a concrete implementation, or a type that can
|
||||||
|
* be instantiated. For example, array types return true for both {@link #isAbstract()} and this
|
||||||
|
* method.
|
||||||
*
|
*
|
||||||
* @return whether the method is a concrete method
|
* @see ResolvedJavaType#isConcrete()
|
||||||
*/
|
*/
|
||||||
default boolean isConcrete() {
|
default boolean isConcrete() {
|
||||||
return !isAbstract();
|
return !isAbstract();
|
||||||
|
@ -402,4 +402,9 @@ public interface ResolvedJavaType extends JavaType, ModifiersProvider, Annotated
|
|||||||
default ResolvedJavaField resolveField(UnresolvedJavaField unresolvedJavaField, ResolvedJavaType accessingClass) {
|
default ResolvedJavaField resolveField(UnresolvedJavaField unresolvedJavaField, ResolvedJavaType accessingClass) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
default boolean isConcrete() {
|
||||||
|
return isArray() || !isAbstract();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -196,6 +196,16 @@ public class TestResolvedJavaType extends TypeUniverse {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void isConcreteTest() {
|
||||||
|
for (Class<?> c : classes) {
|
||||||
|
ResolvedJavaType type = metaAccess.lookupJavaType(c);
|
||||||
|
boolean expected = c.isArray() || !isAbstract(c.getModifiers());
|
||||||
|
boolean actual = type.isConcrete();
|
||||||
|
assertEquals(expected, actual);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void lambdaInternalNameTest() {
|
public void lambdaInternalNameTest() {
|
||||||
// Verify that the last dot in lambda types is properly handled when transitioning from
|
// Verify that the last dot in lambda types is properly handled when transitioning from
|
||||||
|
Loading…
Reference in New Issue
Block a user