Skip to content

Commit 75c6c6d

Browse files
committed
Remove HasShapeFlagsNode.
1 parent 850bd4a commit 75c6c6d

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
@@ -1295,10 +1295,7 @@ public abstract static class GetShapeFlagsNode extends Node {
12951295
* }
12961296
* }
12971297
*
1298-
* Note that {@link HasShapeFlagsNode} is more convenient for that particular pattern.
1299-
*
13001298
* @return shape flags
1301-
* @see HasShapeFlagsNode
13021299
* @see SetShapeFlagsNode
13031300
* @see Shape.Builder#shapeFlags(int)
13041301
* @see Shape#getFlags()
@@ -1336,85 +1333,6 @@ public static GetShapeFlagsNode getUncached() {
13361333
}
13371334
}
13381335

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

0 commit comments

Comments
 (0)