File tree Expand file tree Collapse file tree 1 file changed +12
-9
lines changed
graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/cext Expand file tree Collapse file tree 1 file changed +12
-9
lines changed Original file line number Diff line number Diff line change @@ -2461,26 +2461,29 @@ public static PCallCapiFunction getUncached() {
2461
2461
// -----------------------------------------------------------------------------------------------------------------
2462
2462
public static class MayRaiseNodeFactory <T extends PythonBuiltinBaseNode > implements NodeFactory <T > {
2463
2463
private final T node ;
2464
- private Class <T > nodeClass ;
2464
+ private final Class <T > nodeClass ;
2465
2465
2466
2466
public MayRaiseNodeFactory (T node ) {
2467
2467
this .node = node ;
2468
+ this .nodeClass = determineNodeClass (node );
2468
2469
}
2469
2470
2470
2471
public T createNode (Object ... arguments ) {
2471
2472
return NodeUtil .cloneNode (node );
2472
2473
}
2473
2474
2474
- @ SuppressWarnings ("unchecked" )
2475
2475
public Class <T > getNodeClass () {
2476
+ return nodeClass ;
2477
+ }
2478
+
2479
+ @ SuppressWarnings ("unchecked" )
2480
+ private static <T > Class <T > determineNodeClass (T node ) {
2476
2481
CompilerAsserts .neverPartOfCompilation ();
2477
- if (nodeClass == null ) {
2478
- nodeClass = (Class <T >) node .getClass ();
2479
- GeneratedBy genBy = nodeClass .getAnnotation (GeneratedBy .class );
2480
- if (genBy != null ) {
2481
- nodeClass = (Class <T >) genBy .value ();
2482
- assert nodeClass .isAssignableFrom (node .getClass ());
2483
- }
2482
+ Class <T > nodeClass = (Class <T >) node .getClass ();
2483
+ GeneratedBy genBy = nodeClass .getAnnotation (GeneratedBy .class );
2484
+ if (genBy != null ) {
2485
+ nodeClass = (Class <T >) genBy .value ();
2486
+ assert nodeClass .isAssignableFrom (node .getClass ());
2484
2487
}
2485
2488
return nodeClass ;
2486
2489
}
You can’t perform that action at this time.
0 commit comments