The import munging rabbit hole goes a little deeper...

* We can't just removeGlobals for actionscript services because that will nuke lovingly hacked things like ByteArray, so instead remove primitive stuff that got added as argument types.
* Prevent a crash in ImportSet if the first import in our list has no group. This was uncovered by genservice in orth.

git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6681 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Jamie Doornbos
2011-07-06 22:56:04 +00:00
parent c707a6a7a6
commit d57521996c
2 changed files with 13 additions and 3 deletions
@@ -383,8 +383,13 @@ public class GenServiceTask extends InvocationTask
// change imports of Foo$Bar to Foo_Bar
imports.translateInnerClasses();
// marshallers just use the built-in actionscript classes in place of byte, short, etc
imports.removeGlobals();
// Boolean is built in
imports.remove("boolean");
// int is used for these
imports.remove("byte");
imports.remove("short");
imports.remove("char");
// convert java bases and primitives
ActionScriptUtils.convertBaseClasses(imports);
@@ -236,6 +236,11 @@ public class ImportSet
}
}
public void remove (String name)
{
_imports.remove(name);
}
/**
* Removes the name of a class from the imports.
* @param clazz the class whose name should be removed
@@ -348,7 +353,7 @@ public class ImportSet
});
List<List<String>> result = Lists.newArrayList();
List<String> current = null;
int lastGroup = -1;
int lastGroup = -2;
for (String imp : list) {
int group = findImportGroup(imp, groups);
if (group != lastGroup) {