mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-17 02:14:54 +00:00
painless: Use isAssignableFrom instead of relying on ClassCastException
This commit is contained in:
parent
6e467a1bd2
commit
c78bf8c867
@ -60,20 +60,12 @@ public final class LBrace extends ALink {
|
||||
} else if (sort == Sort.DEF) {
|
||||
return new LDefArray(line, location, index).copy(this).analyze(settings, definition, variables);
|
||||
} else {
|
||||
try {
|
||||
before.clazz.asSubclass(Map.class);
|
||||
|
||||
if (Map.class.isAssignableFrom(before.clazz)) {
|
||||
return new LMapShortcut(line, location, index).copy(this).analyze(settings, definition, variables);
|
||||
} catch (final ClassCastException exception) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
try {
|
||||
before.clazz.asSubclass(List.class);
|
||||
|
||||
|
||||
if (List.class.isAssignableFrom(before.clazz)) {
|
||||
return new LListShortcut(line, location, index).copy(this).analyze(settings, definition, variables);
|
||||
} catch (final ClassCastException exception) {
|
||||
// Do nothing.
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -82,20 +82,12 @@ public final class LField extends ALink {
|
||||
final EConstant index = new EConstant(line, location, value);
|
||||
index.analyze(settings, definition, variables);
|
||||
|
||||
try {
|
||||
before.clazz.asSubclass(Map.class);
|
||||
|
||||
if (Map.class.isAssignableFrom(before.clazz)) {
|
||||
return new LMapShortcut(line, location, index).copy(this).analyze(settings, definition, variables);
|
||||
} catch (final ClassCastException exception) {
|
||||
// Do nothing.
|
||||
}
|
||||
|
||||
try {
|
||||
before.clazz.asSubclass(List.class);
|
||||
|
||||
|
||||
if (List.class.isAssignableFrom(before.clazz)) {
|
||||
return new LListShortcut(line, location, index).copy(this).analyze(settings, definition, variables);
|
||||
} catch (final ClassCastException exception) {
|
||||
// Do nothing.
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -54,9 +54,7 @@ public final class STrap extends AStatement {
|
||||
void analyze(final CompilerSettings settings, final Definition definition, final Variables variables) {
|
||||
variable = variables.addVariable(location, type, name, true, false);
|
||||
|
||||
try {
|
||||
variable.type.clazz.asSubclass(Exception.class);
|
||||
} catch (final ClassCastException cce) {
|
||||
if (!Exception.class.isAssignableFrom(variable.type.clazz)) {
|
||||
throw new ClassCastException(error("Not an exception type [" + variable.type.name + "]."));
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user