Skip to content

Commit 0b1d13f

Browse files
committed
Remove HasShapeFlagsNode.
1 parent 71ba5ca commit 0b1d13f

File tree

2 files changed

+8
-94
lines changed

2 files changed

+8
-94
lines changed

truffle/src/com.oracle.truffle.api.object.test/src/com/oracle/truffle/api/object/test/DynamicObjectNodesTest.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -175,13 +175,6 @@ private DynamicObject.GetShapeFlagsNode createGetShapeFlagsNode() {
175175
};
176176
}
177177

178-
private DynamicObject.HasShapeFlagsNode createHasShapeFlagsNode() {
179-
return switch (run) {
180-
case CACHED -> DynamicObject.HasShapeFlagsNode.create();
181-
case UNCACHED -> DynamicObject.HasShapeFlagsNode.getUncached();
182-
};
183-
}
184-
185178
private DynamicObject.ResetShapeNode createResetShapeNode() {
186179
return switch (run) {
187180
case CACHED -> DynamicObject.ResetShapeNode.create();
@@ -681,21 +674,24 @@ public void testHasAddShapeFlags() {
681674
final int flags = 0b101010;
682675

683676
DynamicObject.GetShapeFlagsNode getShapeFlagsNode = createGetShapeFlagsNode();
684-
DynamicObject.HasShapeFlagsNode hasShapeFlagsNode = createHasShapeFlagsNode();
685677
DynamicObject.SetShapeFlagsNode setShapeFlagsNode = createSetShapeFlagsNode();
686678
DynamicObject.AddShapeFlagsNode addShapeFlagsNode = createAddShapeFlagsNode();
687679

688680
DynamicObject o1 = createEmpty();
689681
setShapeFlagsNode.execute(o1, flags);
690682
assertEquals(flags, getShapeFlagsNode.execute(o1));
691-
assertTrue(hasShapeFlagsNode.execute(o1, flags));
692-
assertTrue(hasShapeFlagsNode.execute(o1, 0b10));
693-
assertFalse(hasShapeFlagsNode.execute(o1, 0b11));
683+
assertTrue(hasShapeFlags(getShapeFlagsNode, o1, flags));
684+
assertTrue(hasShapeFlags(getShapeFlagsNode, o1, 0b10));
685+
assertFalse(hasShapeFlags(getShapeFlagsNode, o1, 0b11));
694686
addShapeFlagsNode.execute(o1, 0b1);
695-
assertTrue(hasShapeFlagsNode.execute(o1, 0b11));
687+
assertTrue(hasShapeFlags(getShapeFlagsNode, o1, 0b11));
696688
assertEquals(flags | 0b1, getShapeFlagsNode.execute(o1));
697689
}
698690

691+
static boolean hasShapeFlags(DynamicObject.GetShapeFlagsNode getShapeFlagsNode, DynamicObject obj, int flags) {
692+
return (getShapeFlagsNode.execute(obj) & flags) == flags;
693+
}
694+
699695
@Test
700696
public void testMakeShared() {
701697
String key = "key";

truffle/src/com.oracle.truffle.api.object/src/com/oracle/truffle/api/object/DynamicObject.java

Lines changed: 0 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1303,10 +1303,7 @@ public abstract static class GetShapeFlagsNode extends Node {
13031303
* }
13041304
* }
13051305
*
1306-
* Note that {@link HasShapeFlagsNode} is more convenient for that particular pattern.
1307-
*
13081306
* @return shape flags
1309-
* @see HasShapeFlagsNode
13101307
* @see SetShapeFlagsNode
13111308
* @see Shape.Builder#shapeFlags(int)
13121309
* @see Shape#getFlags()
@@ -1344,85 +1341,6 @@ public static GetShapeFlagsNode getUncached() {
13441341
}
13451342
}
13461343

1347-
/**
1348-
* Checks if the language-specific object shape flags include the given flags.
1349-
*
1350-
* @see #execute(DynamicObject, int)
1351-
* @since 25.1
1352-
*/
1353-
@ImportStatic(DynamicObject.class)
1354-
@GeneratePackagePrivate
1355-
@GenerateUncached
1356-
@GenerateInline(false)
1357-
public abstract static class HasShapeFlagsNode extends Node {
1358-
1359-
HasShapeFlagsNode() {
1360-
}
1361-
1362-
// @formatter:off
1363-
/**
1364-
* Checks if the language-specific object shape flags contains the given flags, previously set using
1365-
* {@link SetShapeFlagsNode} or
1366-
* {@link Shape.Builder#shapeFlags(int)}. If no shape flags were explicitly set, the default of
1367-
* false is returned.
1368-
*
1369-
* These flags may be used to tag objects that possess characteristics that need to be queried
1370-
* efficiently on fast and slow paths. For example, they can be used to mark objects as frozen.
1371-
*
1372-
* <h3>Usage example:</h3>
1373-
*
1374-
* {@snippet :
1375-
* @ExportMessage
1376-
* Object writeMember(String member, Object value,
1377-
* @Cached DynamicObject.HasShapeFlagsNode hasShapeFlagsNode,
1378-
* @Cached DynamicObject.PutNode putNode)
1379-
* throws UnsupportedMessageException {
1380-
* if (hasShapeFlagsNode.execute(receiver, FROZEN)) {
1381-
* throw UnsupportedMessageException.create();
1382-
* }
1383-
* putNode.execute(this, member, value);
1384-
* }
1385-
* }
1386-
*
1387-
* @return whether the shape flags contain (all of) the given flags
1388-
* @see GetShapeFlagsNode
1389-
* @see SetShapeFlagsNode
1390-
* @see Shape.Builder#shapeFlags(int)
1391-
* @see Shape#getFlags()
1392-
*/
1393-
// @formatter:on
1394-
public abstract boolean execute(DynamicObject receiver, int flags);
1395-
1396-
@SuppressWarnings("unused")
1397-
@Specialization(guards = "shape == cachedShape", limit = "1")
1398-
static boolean doCached(DynamicObject receiver, int flags,
1399-
@Bind("receiver.getShape()") Shape shape,
1400-
@Cached("shape") Shape cachedShape) {
1401-
return (cachedShape.getFlags() & flags) == flags;
1402-
}
1403-
1404-
@Specialization(replaces = "doCached")
1405-
static boolean doGeneric(DynamicObject receiver, int flags) {
1406-
return (receiver.getShape().getFlags() & flags) == flags;
1407-
}
1408-
1409-
/**
1410-
* @since 25.1
1411-
*/
1412-
@NeverDefault
1413-
public static HasShapeFlagsNode create() {
1414-
return DynamicObjectFactory.HasShapeFlagsNodeGen.create();
1415-
}
1416-
1417-
/**
1418-
* @since 25.1
1419-
*/
1420-
@NeverDefault
1421-
public static HasShapeFlagsNode getUncached() {
1422-
return DynamicObjectFactory.HasShapeFlagsNodeGen.getUncached();
1423-
}
1424-
}
1425-
14261344
/**
14271345
* Sets language-specific object shape flags.
14281346
*

0 commit comments

Comments
 (0)