Skip to content

Commit d3f2159

Browse files
committed
[GR-17086] Do not translate IllegalArgumentException
PullRequest: truffleruby/2878
2 parents fe56a82 + 1e45a23 commit d3f2159

File tree

21 files changed

+143
-169
lines changed

21 files changed

+143
-169
lines changed

src/launcher/java/org/truffleruby/launcher/CommandLineOptions.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,6 @@ public <T> void setOption(OptionDescriptor descriptor, T value) {
8181
setOptionRaw(descriptor, RubyOptionTypes.valueToString(value));
8282
}
8383

84-
public <T> T getOption(OptionDescriptor descriptor) {
85-
return RubyOptionTypes.parseValue(descriptor, getOptionRaw(descriptor));
86-
}
87-
8884
public <T> void appendOptionValue(OptionDescriptor descriptor, String newValue) {
8985
final OptionType<?> type = descriptor.getKey().getType();
9086

@@ -105,7 +101,7 @@ private void setOptionRaw(OptionDescriptor descriptor, String value) {
105101
options.put(descriptor.getName(), value);
106102
}
107103

108-
private <T> String getOptionRaw(OptionDescriptor descriptor) {
104+
public String getOptionRaw(OptionDescriptor descriptor) {
109105
return options.getOrDefault(
110106
descriptor.getName(),
111107
RubyOptionTypes.valueToString(descriptor.getKey().getDefaultValue()));

src/launcher/java/org/truffleruby/launcher/CommandLineParser.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ private boolean endOfInterpreterArguments() {
101101
}
102102

103103
private void processArgv() {
104-
boolean argvGlobalsOn = config.getOption(OptionsCatalog.ARGV_GLOBALS);
104+
boolean argvGlobalsOn = config.getOptionRaw(OptionsCatalog.ARGV_GLOBALS).equals("true");
105105
ArrayList<String> arglist = new ArrayList<>();
106106
for (; argumentIndex < arguments.size(); argumentIndex++) {
107107
String arg = getCurrentArgument();

src/main/java/org/truffleruby/RubyContext.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,9 +376,10 @@ private Options createOptions(TruffleLanguage.Env env, LanguageOptions languageO
376376
if (options.OPTIONS_LOG && RubyLanguage.LOGGER.isLoggable(Level.CONFIG)) {
377377
for (OptionDescriptor descriptor : OptionsCatalog.allDescriptors()) {
378378
assert descriptor.getName().startsWith(TruffleRuby.LANGUAGE_ID);
379-
final String xName = descriptor.getName().substring(TruffleRuby.LANGUAGE_ID.length() + 1);
379+
final String optionName = descriptor.getName().substring(TruffleRuby.LANGUAGE_ID.length() + 1);
380380
RubyLanguage.LOGGER.config(
381-
"option " + xName + "=" + RubyOptionTypes.valueToString(options.fromDescriptor(descriptor)));
381+
"option " + optionName + "=" +
382+
RubyOptionTypes.valueToString(options.fromDescriptor(descriptor)));
382383
}
383384
}
384385

src/main/java/org/truffleruby/collections/IntHashMap.java

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,6 @@ public IntHashMap(int initialCapacity) {
7171
@SuppressWarnings({ "unchecked", "rawtypes" })
7272
public IntHashMap(int initialCapacity, float loadFactor) {
7373
super();
74-
if (initialCapacity < 0) {
75-
throw new IllegalArgumentException("Illegal Capacity: " + initialCapacity);
76-
}
77-
if (loadFactor <= 0) {
78-
throw new IllegalArgumentException("Illegal Load: " + loadFactor);
79-
}
8074
if (initialCapacity == 0) {
8175
initialCapacity = 1;
8276
}

src/main/java/org/truffleruby/core/exception/CoreExceptions.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.io.IOException;
1515
import java.util.EnumSet;
1616

17+
import com.oracle.truffle.api.CompilerDirectives;
1718
import com.oracle.truffle.api.interop.InvalidBufferOffsetException;
1819
import com.oracle.truffle.api.interop.UnknownKeyException;
1920
import org.jcodings.Encoding;
@@ -1077,7 +1078,7 @@ public RubyException rangeErrorConvertToInt(long value, Node currentNode) {
10771078
} else if (value > Integer.MAX_VALUE) {
10781079
direction = "big";
10791080
} else {
1080-
throw new IllegalArgumentException();
1081+
throw CompilerDirectives.shouldNotReachHere("long fitting in int");
10811082
}
10821083

10831084
return rangeError(StringUtils.format("integer %d too %s to convert to `int'", value, direction), currentNode);

src/main/java/org/truffleruby/core/format/FormatExceptionTranslator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
package org.truffleruby.core.format;
1111

12+
import com.oracle.truffle.api.CompilerDirectives;
1213
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
1314
import com.oracle.truffle.api.nodes.Node;
1415
import org.truffleruby.RubyContext;
@@ -49,9 +50,8 @@ public static RuntimeException translate(RubyContext context, Node currentNode,
4950
} else if (exception instanceof InvalidFormatException) {
5051
final InvalidFormatException e = (InvalidFormatException) exception;
5152
return new RaiseException(context, coreExceptions.argumentError(e.getMessage(), currentNode));
52-
5353
} else {
54-
throw new IllegalArgumentException();
54+
throw CompilerDirectives.shouldNotReachHere(exception);
5555
}
5656
}
5757

src/main/java/org/truffleruby/core/format/pack/SimplePackTreeBuilder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.util.Deque;
1616
import java.util.List;
1717

18+
import com.oracle.truffle.api.CompilerDirectives;
1819
import org.truffleruby.RubyLanguage;
1920
import org.truffleruby.core.format.FormatEncoding;
2021
import org.truffleruby.core.format.FormatNode;
@@ -293,7 +294,7 @@ private void appendFloatNode(int size, ByteOrder byteOrder, int count) {
293294
typeNode = readNode;
294295
break;
295296
default:
296-
throw new IllegalArgumentException();
297+
throw CompilerDirectives.shouldNotReachHere();
297298
}
298299

299300
appendNode(sharedTreeBuilder.applyCount(
@@ -341,7 +342,7 @@ private FormatNode writeInteger(int size, ByteOrder byteOrder, FormatNode readNo
341342
}
342343
break;
343344
default:
344-
throw new IllegalArgumentException(Integer.toString(size));
345+
throw CompilerDirectives.shouldNotReachHere(Integer.toString(size));
345346
}
346347

347348
return WriteBytesNodeGen.create(convertNode);

src/main/java/org/truffleruby/core/format/unpack/SimpleUnpackTreeBuilder.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import java.util.Deque;
1616
import java.util.List;
1717

18+
import com.oracle.truffle.api.CompilerDirectives;
1819
import org.truffleruby.RubyLanguage;
1920
import org.truffleruby.core.format.FormatNode;
2021
import org.truffleruby.core.format.SharedTreeBuilder;
@@ -306,7 +307,7 @@ private void appendFloatNode(int size, ByteOrder byteOrder, int count) {
306307
decodeNode = ReinterpretLongAsDoubleNodeGen.create(readNode);
307308
break;
308309
default:
309-
throw new IllegalArgumentException();
310+
throw CompilerDirectives.shouldNotReachHere();
310311
}
311312

312313
final FormatNode writeNode = WriteValueNodeGen.create(new OutputNode(), decodeNode);
@@ -344,7 +345,7 @@ private FormatNode createIntegerDecodeNode(int size, ByteOrder byteOrder, boolea
344345
}
345346
break;
346347
default:
347-
throw new IllegalArgumentException();
348+
throw CompilerDirectives.shouldNotReachHere();
348349
}
349350

350351
if (!signed) {

src/main/java/org/truffleruby/core/kernel/TruffleKernelNodes.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,7 +192,8 @@ protected Object defineHookedVariableInnerNode(
192192
name.getString(),
193193
getter,
194194
setter,
195-
isDefined);
195+
isDefined,
196+
this);
196197
return nil;
197198
}
198199

src/main/java/org/truffleruby/core/method/MethodFilter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
*/
1010
package org.truffleruby.core.method;
1111

12+
import com.oracle.truffle.api.CompilerDirectives;
1213
import org.truffleruby.language.Visibility;
1314
import org.truffleruby.language.methods.InternalMethod;
1415

@@ -57,7 +58,7 @@ public static MethodFilter by(Visibility visibility) {
5758
case PRIVATE:
5859
return PRIVATE;
5960
default:
60-
throw new IllegalArgumentException("unsupported visibility: " + visibility);
61+
throw CompilerDirectives.shouldNotReachHere("unsupported visibility: " + visibility);
6162
}
6263
}
6364
}

0 commit comments

Comments
 (0)