-
-
Notifications
You must be signed in to change notification settings - Fork 925
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Refactor new Argument stuff and clean up some related logic.
Also some renaming and a bunch of docs to make these paths more clear.
- 9.4.12.0
- 9.4.11.0
- 9.4.10.0
- 9.4.9.0
- 9.4.8.0
- 9.4.7.0
- 9.4.6.0
- 9.4.5.0
- 9.4.4.0
- 9.4.3.0
- 9.4.2.0
- 9.4.1.0
- 9.4.0.0
- 9.3.15.0
- 9.3.14.0
- 9.3.13.0
- 9.3.12.0
- 9.3.11.0
- 9.3.10.0
- 9.3.9.0
- 9.3.8.0
- 9.3.7.0
- 9.3.6.0
- 9.3.5.0
- 9.3.4.0
- 9.3.3.0
- 9.3.2.0
- 9.3.1.0
- 9.3.0.0
- 9.2.21.0
- 9.2.20.1
- 9.2.20.0
- 9.2.19.0
- 9.2.18.0
- 9.2.17.0
- 9.2.16.0
- 9.2.15.0
- 9.2.14.0
- 9.2.13.0
- 9.2.12.0
- 9.2.11.1
- 9.2.11.0
- 9.2.10.0
- 9.2.9.0
- 9.2.8.0
- 9.2.7.0
- 9.2.6.0
- 9.2.5.0
- 9.2.4.1
- 9.2.4.0
- 9.2.3.0
- 9.2.2.0
- 9.2.1.0
- 9.2.0.0
- 9.1.17.0
- 9.1.16.0
- 9.1.15.0
- 9.1.14.0
- 9.1.13.0
- 9.1.12.0
- 9.1.11.0
- 9.1.10.0
- 9.1.9.0
- 9.1.8.0
- 9.1.7.0
- 9.1.6.0
- 9.1.5.0
- 9.1.4.0
- 9.1.3.0
- 9.1.2.0
- 9.1.1.0
- 9.1.0.0
- 9.0.5.0
- 9.0.4.0
- 9.0.3.0
- 9.0.1.0
- 9.0.0.0
- 9.0.0.0.rc2
- 9.0.0.0.rc1
Showing
12 changed files
with
98 additions
and
69 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
35 changes: 12 additions & 23 deletions
35
core/src/main/java/org/jruby/internal/runtime/methods/IRMethodArgs.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,33 +1,22 @@ | ||
package org.jruby.internal.runtime.methods; | ||
|
||
import org.jruby.runtime.ArgumentDescriptor; | ||
import org.jruby.runtime.Signature; | ||
|
||
/** | ||
* Represents a method object that can return a Signature and an array of ArgumentDescriptors. | ||
*/ | ||
public interface IRMethodArgs { | ||
// FIXME: Should get pushed to DynamicMethod | ||
public Signature getSignature(); | ||
public ArgumentDescriptor[] getArgumentDescriptors(); | ||
|
||
public enum ArgumentType { | ||
key, keyreq, keyrest, block, opt, rest, req | ||
} | ||
|
||
public class ArgumentDescriptor { | ||
public final ArgumentType type; | ||
public final String name; | ||
public static final ArgumentDescriptor[] EMPTY_ARRAY = new ArgumentDescriptor[0]; | ||
/** | ||
* Get the Signature for this method. | ||
*/ | ||
public Signature getSignature(); | ||
|
||
public ArgumentDescriptor(ArgumentType type, String name) { | ||
this.type = type; | ||
this.name = name; | ||
} | ||
/** | ||
* Get the array of ArgumentDescriptors that represent the arguments to this method. | ||
*/ | ||
public ArgumentDescriptor[] getArgumentDescriptors(); | ||
|
||
public String toShortDesc() { | ||
switch (type) { | ||
case keyreq: return "K" + name; | ||
case keyrest: return "e" + name; | ||
case req: return "q" + name; | ||
default: return type.name().charAt(0) + name; | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
7 changes: 7 additions & 0 deletions
7
core/src/main/java/org/jruby/internal/runtime/methods/MethodArgs2.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
28 changes: 28 additions & 0 deletions
28
core/src/main/java/org/jruby/runtime/ArgumentDescriptor.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package org.jruby.runtime; | ||
|
||
/** | ||
* A description of a single argument in a Ruby argument list. | ||
*/ | ||
public class ArgumentDescriptor { | ||
/** The type of the argument */ | ||
public final ArgumentType type; | ||
|
||
/** The name of the argument */ | ||
public final String name; | ||
|
||
public static final ArgumentDescriptor[] EMPTY_ARRAY = new ArgumentDescriptor[0]; | ||
|
||
public ArgumentDescriptor(ArgumentType type, String name) { | ||
this.type = type; | ||
this.name = name; | ||
} | ||
|
||
/** | ||
* Generate the prefixed version of this descriptor. | ||
* | ||
* @see org.jruby.internal.runtime.methods.MethodArgs2 | ||
*/ | ||
public String toPrefixForm() { | ||
return type.prefix + name; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package org.jruby.runtime; | ||
|
||
/** | ||
* Created by headius on 5/8/15. | ||
*/ | ||
public enum ArgumentType { | ||
key('k'), keyreq('K'), keyrest('e'), block('b'), opt('o'), rest('r'), req('q'); | ||
|
||
ArgumentType(char prefix) { | ||
this.prefix = prefix; | ||
} | ||
|
||
public static ArgumentType valueOf(char prefix) { | ||
switch (prefix) { | ||
case 'k': return key; | ||
case 'K': return keyreq; | ||
case 'e': return keyrest; | ||
case 'b': return block; | ||
case 'o': return opt; | ||
case 'r': return rest; | ||
case 'q': return req; | ||
// for 'R' used by prefix for to represent anonymous restarg | ||
case 'R': return rest; | ||
// for 'nil' used by old compiler to represent array destructuring | ||
case 'n': return req; | ||
default: return null; | ||
} | ||
} | ||
|
||
public final char prefix; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters