Skip to content

Commit 69cce0f

Browse files
committed
Bytecode DSL: fix remaining tests in test_code
1 parent b80f03f commit 69cce0f

File tree

2 files changed

+23
-12
lines changed
  • graalpython
    • com.oracle.graal.python.test/src/tests/unittest_tags_bytecode_dsl
    • com.oracle.graal.python/src/com/oracle/graal/python/compiler/bytecode_dsl

2 files changed

+23
-12
lines changed

graalpython/com.oracle.graal.python.test/src/tests/unittest_tags_bytecode_dsl/test_code.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
DocTestCase.test.test_code @ linux-x86_64
12
test.test_code.CodeTest.test_code_hash_uses_bytecode @ linux-x86_64
23
test.test_code.CodeTest.test_constructor @ linux-x86_64
34
test.test_code.CodeTest.test_qualname @ linux-x86_64

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/compiler/bytecode_dsl/RootNodeCompiler.java

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -709,6 +709,11 @@ String maybeMangle(String name) {
709709
return ctx.maybeMangle(this.privateName, scope, name);
710710
}
711711

712+
String maybeMangleAndAddName(String name) {
713+
String mangled = ctx.maybeMangle(this.privateName, scope, name);
714+
return addName(mangled);
715+
}
716+
712717
// --------------------- visitor ---------------------------
713718

714719
@Override
@@ -1284,10 +1289,9 @@ private String mangle(String name) {
12841289
return ctx.mangle(scope, name);
12851290
}
12861291

1287-
private void emitNotImplemented(String what, Builder b) {
1288-
b.beginRaiseNotImplementedError();
1289-
emitPythonConstant(toTruffleStringUncached(what), b);
1290-
b.endRaiseNotImplementedError();
1292+
private String mangleAndAddName(String name) {
1293+
String mangled = ctx.mangle(scope, name);
1294+
return addName(mangled);
12911295
}
12921296

12931297
/**
@@ -1335,12 +1339,12 @@ private void emitYield(Consumer<StatementCompiler> yieldValueProducer, Statement
13351339
}
13361340

13371341
private void beginSetAttribute(String name, Builder b) {
1338-
String mangled = maybeMangle(name);
1342+
String mangled = maybeMangleAndAddName(name);
13391343
b.beginSetAttribute(toTruffleStringUncached(mangled));
13401344
}
13411345

13421346
private void beginGetAttribute(String name, Builder b) {
1343-
String mangled = maybeMangle(name);
1347+
String mangled = maybeMangleAndAddName(name);
13441348
b.beginGetAttribute(toTruffleStringUncached(mangled));
13451349
}
13461350

@@ -1423,7 +1427,7 @@ private void emitNameFastOperation(String mangled, NameOperation op, Builder b)
14231427

14241428
private void emitNameGlobalOperation(String name, NameOperation op, Builder b, boolean isImplicitScope) {
14251429
assert locals.get(name) == null;
1426-
names.putIfAbsent(name, names.size());
1430+
addName(name);
14271431
TruffleString tsName = toTruffleStringUncached(name);
14281432
switch (op) {
14291433
case Read:
@@ -1456,9 +1460,14 @@ private void emitNameGlobalOperation(String name, NameOperation op, Builder b, b
14561460
}
14571461
}
14581462

1463+
private String addName(String name) {
1464+
names.putIfAbsent(name, names.size());
1465+
return name;
1466+
}
1467+
14591468
private void emitNameSlowOperation(String name, NameOperation op, Builder b) {
14601469
assert locals.get(name) == null;
1461-
names.putIfAbsent(name, names.size());
1470+
addName(name);
14621471
TruffleString tsName = toTruffleStringUncached(name);
14631472
switch (op) {
14641473
case Read:
@@ -3579,7 +3588,7 @@ public Void visit(ExprTy.Subscript node) {
35793588
@Override
35803589
public Void visit(ExprTy.Attribute node) {
35813590
boolean newStatement = beginSourceSection(node, b);
3582-
b.beginDeleteAttribute(toTruffleStringUncached(maybeMangle(node.attr)));
3591+
b.beginDeleteAttribute(toTruffleStringUncached(maybeMangleAndAddName(node.attr)));
35833592
node.value.accept(StatementCompiler.this);
35843593
b.endDeleteAttribute();
35853594

@@ -3649,7 +3658,7 @@ public Void visit(StmtTy.Expr node) {
36493658
b.beginPrintExpr();
36503659
node.value.accept(this);
36513660
b.endPrintExpr();
3652-
} else {
3661+
} else if (!(node.value instanceof ExprTy.Constant)) {
36533662
node.value.accept(this);
36543663
}
36553664
endSourceSection(b, newStatement);
@@ -3910,7 +3919,6 @@ private void emitMakeFunction(BytecodeDSLCodeUnit codeUnit, Object scopeKey, Str
39103919
TruffleString qualifiedName = codeUnit.qualname;
39113920

39123921
// Register these in the Python constants list.
3913-
addConstant(qualifiedName);
39143922
addConstant(codeUnit);
39153923

39163924
b.beginMakeFunction(functionName, qualifiedName, new BytecodeDSLCodeUnitAndRoot(codeUnit));
@@ -4083,7 +4091,8 @@ public Void visit(StmtTy.ImportFrom node) {
40834091
ctx.errorCallback.onError(ErrorType.Syntax, node.getSourceRange(), "from __future__ imports must occur at the beginning of the file");
40844092
}
40854093

4086-
TruffleString tsModuleName = toTruffleStringUncached(node.module == null ? "" : node.module);
4094+
String moduleName = addName(node.module == null ? "" : node.module);
4095+
TruffleString tsModuleName = toTruffleStringUncached(moduleName);
40874096

40884097
if (node.names[0].name.equals("*")) {
40894098
b.emitImportStar(tsModuleName, node.level);
@@ -4104,6 +4113,7 @@ public Void visit(StmtTy.ImportFrom node) {
41044113
TruffleString[] importedNames = new TruffleString[node.names.length];
41054114
for (int i = 0; i < node.names.length; i++) {
41064115
AliasTy alias = node.names[i];
4116+
addName(alias.name);
41074117
String asName = alias.asName == null ? alias.name : alias.asName;
41084118
beginStoreLocal(asName, b);
41094119

0 commit comments

Comments
 (0)