Skip to content

Commit 74b2c74

Browse files
committed
Remove keywordAsOptional functionality
1 parent d330393 commit 74b2c74

File tree

3 files changed

+2
-42
lines changed

3 files changed

+2
-42
lines changed

src/annotations/java/org/truffleruby/builtins/CoreMethod.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,6 @@
4747

4848
int optional() default 0;
4949

50-
/** Declares that a keyword argument with this name will be passed into the method as if it was an extra trailing
51-
* positional optional argument. */
52-
String keywordAsOptional() default "";
53-
5450
boolean rest() default false;
5551

5652
boolean needsBlock() default false;

src/main/java/org/truffleruby/builtins/CoreMethodNodeManager.java

Lines changed: 2 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,7 @@
3636
import org.truffleruby.language.methods.Split;
3737
import org.truffleruby.language.Visibility;
3838
import org.truffleruby.language.arguments.MissingArgumentBehavior;
39-
import org.truffleruby.language.arguments.NotProvidedNode;
4039
import org.truffleruby.language.arguments.ReadBlockFromCurrentFrameArgumentsNode;
41-
import org.truffleruby.language.arguments.ReadKeywordArgumentNode;
4240
import org.truffleruby.language.arguments.ReadPreArgumentNode;
4341
import org.truffleruby.language.arguments.ReadRemainingArgumentsNode;
4442
import org.truffleruby.language.arguments.ReadSelfNode;
@@ -132,14 +130,7 @@ private void addCoreMethod(RubyModule module, MethodDetails methodDetails) {
132130
final Visibility visibility = annotation.visibility();
133131
verifyUsage(module, methodDetails, annotation, visibility);
134132

135-
final String keywordAsOptional = annotation.keywordAsOptional().isEmpty()
136-
? null
137-
: annotation.keywordAsOptional();
138-
final Arity arity = createArity(
139-
annotation.required(),
140-
annotation.optional(),
141-
annotation.rest(),
142-
keywordAsOptional);
133+
final Arity arity = new Arity(annotation.required(), annotation.optional(), annotation.rest());
143134
final NodeFactory<? extends RubyBaseNode> nodeFactory = methodDetails.getNodeFactory();
144135
final boolean onSingleton = annotation.onSingleton() || annotation.constructor();
145136
final boolean isModuleFunc = annotation.isModuleFunction();
@@ -173,11 +164,10 @@ public void addLazyCoreMethod(
173164
int required,
174165
int optional,
175166
boolean rest,
176-
String keywordAsOptional,
177167
String... names) {
178168

179169
final RubyModule module = getModule(moduleName, isClass);
180-
final Arity arity = createArity(required, optional, rest, keywordAsOptional);
170+
final Arity arity = new Arity(required, optional, rest);
181171
final Split finalSplit;
182172
if (alwaysInlined) {
183173
finalSplit = Split.NEVER;
@@ -317,12 +307,6 @@ private static SharedMethodInfo makeSharedMethodInfo(String moduleName, boolean
317307
null);
318308
}
319309

320-
private static Arity createArity(int required, int optional, boolean rest, String keywordAsOptional) {
321-
return keywordAsOptional == null
322-
? new Arity(required, optional, rest)
323-
: new Arity(required, optional, rest, 0, new String[]{ keywordAsOptional }, true, false);
324-
}
325-
326310
public RootCallTarget createCoreMethodRootNode(NodeFactory<? extends RubyBaseNode> nodeFactory,
327311
RubyLanguage language, SharedMethodInfo sharedMethodInfo, Split split, CoreMethod method) {
328312

@@ -372,18 +356,6 @@ public RootCallTarget createCoreMethodRootNode(NodeFactory<? extends RubyBaseNod
372356
argumentsNodes[i++] = new ReadBlockFromCurrentFrameArgumentsNode();
373357
}
374358

375-
if (!method.keywordAsOptional().isEmpty()) {
376-
if (optional > 0) {
377-
throw new UnsupportedOperationException(
378-
"core method has been declared with both optional arguments and a keyword-as-optional argument");
379-
}
380-
381-
argumentsNodes[i++] = ReadKeywordArgumentNode.create(
382-
required,
383-
language.getSymbol(method.keywordAsOptional()),
384-
new NotProvidedNode());
385-
}
386-
387359
RubyNode node = (RubyNode) createNodeFromFactory(nodeFactory, argumentsNodes);
388360
RubyNode methodNode = transformResult(method, node);
389361

src/processor/java/org/truffleruby/processor/CoreModuleProcessor.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -285,10 +285,6 @@ private void processCoreMethod(
285285
coreMethod.required() + ", " +
286286
coreMethod.optional() + ", " +
287287
coreMethod.rest() + ", " +
288-
(coreMethod.keywordAsOptional().isEmpty()
289-
? "null"
290-
: quote(coreMethod.keywordAsOptional())) +
291-
", " +
292288
names + ");");
293289

294290
final boolean hasSelfArgument = !coreMethod.onSingleton() && !coreMethod.constructor() &&
@@ -338,10 +334,6 @@ private void processCoreMethod(
338334
args.add("*" + argumentNames.get(index));
339335
index++;
340336
}
341-
if (!coreMethod.keywordAsOptional().isEmpty()) {
342-
// TODO (pitr-ch 03-Oct-2019): check interaction with names, or remove it
343-
args.add(coreMethod.keywordAsOptional() + ": :unknown_default_value");
344-
}
345337
if (coreMethod.needsBlock()) {
346338
args.add("&" + argumentNames.get(index));
347339
}

0 commit comments

Comments
 (0)