Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 824f063264de
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 0755620be591
Choose a head ref
  • 5 commits
  • 7 files changed
  • 1 contributor

Commits on Dec 13, 2014

  1. Copy the full SHA
    072f1ae View commit details
  2. Copy the full SHA
    7bf444c View commit details
  3. Copy the full SHA
    4f8e239 View commit details
  4. Copy the full SHA
    79e5c6c View commit details
  5. Copy the full SHA
    0755620 View commit details
27 changes: 25 additions & 2 deletions core/src/main/java/org/jruby/truffle/nodes/core/EncodingNodes.java
Original file line number Diff line number Diff line change
@@ -211,7 +211,26 @@ public RubyArray list() {
}
}

@CoreMethod(names = "to_s")
@CoreMethod(names = "dummy?")
public abstract static class DummyNode extends CoreMethodNode {

public DummyNode(RubyContext context, SourceSection sourceSection) {
super(context, sourceSection);
}

public DummyNode(DummyNode prev) {
super(prev);
}

@Specialization
public boolean isDummy(RubyEncoding encoding) {
notDesignedForCompilation();

return encoding.isDummy();
}
}

@CoreMethod(names = { "name", "to_s" })
public abstract static class ToSNode extends CoreMethodNode {

public ToSNode(RubyContext context, SourceSection sourceSection) {
@@ -245,7 +264,11 @@ public InspectNode(InspectNode prev) {
public RubyString toS(RubyEncoding encoding) {
RubyString name = getContext().makeString(encoding.getName());

return getContext().makeString(String.format("#<Encoding:%s>", name.toString()));
if (encoding.isDummy()) {
return getContext().makeString(String.format("#<Encoding:%s (dummy)>", name.toString()));
} else {
return getContext().makeString(String.format("#<Encoding:%s>", name.toString()));
}
}
}
}
Original file line number Diff line number Diff line change
@@ -28,6 +28,7 @@ public class RubyEncoding extends RubyBasicObject {

private final Encoding encoding;
private final ByteList name;
private final boolean dummy;

/**
* The class from which we create the object that is {@code Encoding}. A subclass of
@@ -68,14 +69,15 @@ public static void storeAlias(String aliasName, RubyEncoding encoding) {
lookup.put(aliasName.toLowerCase(), encoding);
}

public static RubyEncoding newEncoding(RubyContext context, Encoding encoding, byte[] name, int p, int end, boolean isDummy) {
return new RubyEncoding(context.getCoreLibrary().getEncodingClass(), encoding, new ByteList(name, p, end), isDummy);
public static RubyEncoding newEncoding(RubyContext context, Encoding encoding, byte[] name, int p, int end, boolean dummy) {
return new RubyEncoding(context.getCoreLibrary().getEncodingClass(), encoding, new ByteList(name, p, end), dummy);
}

private RubyEncoding(RubyClass encodingClass, Encoding encoding, ByteList name, boolean isDummy) {
private RubyEncoding(RubyClass encodingClass, Encoding encoding, ByteList name, boolean dummy) {
super(encodingClass);
this.encoding = encoding;
this.name = name;
this.dummy = dummy;
}

public Encoding getEncoding() {
@@ -86,6 +88,10 @@ public ByteList getName() {
return name;
}

public boolean isDummy() {
return dummy;
}

public static RubyEncoding[] cloneEncodingList() {
final RubyEncoding[] clone = new RubyEncoding[encodingList.length];

3 changes: 1 addition & 2 deletions spec/truffle/tags/core/encoding/dummy_tags.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
fails:Encoding#dummy? returns false for proper encodings
fails:Encoding#dummy? returns true for dummy encodings
fails(inherited):Encoding#dummy? returns true for dummy encodings
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/encoding/inspect_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/encoding/list_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
fails:Encoding.list returns each encoding only once
fails:Encoding.list does not include any alias names
fails:Encoding.list includes all aliased encodings
fails:Encoding.list includes dummy encodings
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/encoding/name_list_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
fails:Encoding.name_list returns an Array
fails:Encoding.name_list returns encoding names as Strings
fails:Encoding.name_list includes all aliases
fails:Encoding.name_list includes all non-dummy encodings
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/encoding/name_tags.txt

This file was deleted.