Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 20 additions & 4 deletions core/src/main/java/org/jruby/RubyArgsFile.java
Original file line number Diff line number Diff line change
Expand Up @@ -395,12 +395,18 @@ private static IRubyObject argf_getline(ThreadContext context, final int callInf
while (true) {
if (!data.next_argv(context)) return context.nil;

RubyIO currentFile = (RubyIO) data.currentFile;

if (isGenericInput(context, data)) {
context.callInfo = callInfo; // restore callInfo for kwargs
line = data.currentFile.callMethod(context, "gets", args);
line = sites(context).gets.call(context, argsFile(context), data.currentFile, args);

// An IO updates the line number itself, but other objects do not
if (!line.isNil() && !(data.currentFile instanceof RubyIO)) {
context.runtime.setCurrentLine(context.runtime.getCurrentLine() + 1);
}
} else {
// $stdin may be any object with gets (e.g. StringIO), so only cast once we know it is not generic input
RubyIO currentFile = (RubyIO) data.currentFile;

if (args.length == 0 && context.runtime.getRecordSeparatorVar().get() == globalVariables(context).getDefaultSeparator()) {
line = (currentFile).gets(context);
} else {
Expand Down Expand Up @@ -443,6 +449,16 @@ public static IRubyObject gets(ThreadContext context, IRubyObject recv, IRubyObj
*/
@JRubyMethod(name = "readline", optional = 2, keywords = true, checkArity = false, writes = LASTLINE)
public static IRubyObject readline(ThreadContext context, IRubyObject recv, IRubyObject[] args) {
final int callInfo = ThreadContext.resetCallInfo(context);
ArgsFileData data = ArgsFileData.getArgsFileData(context.runtime);

// MRI: argf_readline forwards to $stdin.readline when $stdin is not an IO
if (data.next_argv(context) && !(data.currentFile instanceof RubyIO)) {
context.callInfo = callInfo; // restore callInfo for kwargs
return sites(context).readline.call(context, recv, data.currentFile, args);
}

context.callInfo = callInfo; // restore callInfo for kwargs
IRubyObject line = gets(context, recv, args);

if (line.isNil()) throw context.runtime.newEOFError();
Expand All @@ -461,7 +477,7 @@ public static IRubyObject readlines(ThreadContext context, IRubyObject recv, IRu

if (!(data.currentFile instanceof RubyIO)) {
context.callInfo = callInfo; // restore callInfo for kwargs
return data.currentFile.callMethod(context, "readlines", args);
return sites(context).readlines.call(context, recv, data.currentFile, args);
}

var ary = newArray(context);
Expand Down
6 changes: 6 additions & 0 deletions core/src/main/java/org/jruby/runtime/JavaSites.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import org.jruby.runtime.callsite.DivCallSite;
import org.jruby.runtime.callsite.FunctionalCachingCallSite;
import org.jruby.runtime.callsite.MulCallSite;
import org.jruby.runtime.callsite.NormalCachingCallSite;
import org.jruby.runtime.callsite.PlusCallSite;
import org.jruby.runtime.callsite.RespondToCallSite;
import org.jruby.runtime.callsite.SuperCallSite;
Expand Down Expand Up @@ -484,6 +485,11 @@

public static class ArgfSites {
public final CallSite each_codepoint = new FunctionalCachingCallSite("each_codepoint");
// MRI: forward_current calls only public methods on $stdin (rb_funcallv_public_kw). A functional call
// would reach the private Kernel#gets etc. on a plain object, which read from ARGF again and recurse.
public final CallSite gets = new NormalCachingCallSite("gets");
public final CallSite readline = new NormalCachingCallSite("readline");

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:profiler (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ji (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ruby:debug (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ruby:debug (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ffi (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 27 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 25 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:profiler (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pmain,test -Dinvoker.test=extended (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ji (Java 25 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ffi (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:regression (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jrubyc (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:slow_suites (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pcomplete (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / Dependency check

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pjruby-jars,test -Dinvoker.test=extended (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jrubyc (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ji (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ji (Java 21 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jrubyc (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:regression (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:int (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 21 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ffi (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / Build JRuby release artifacts (21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pdist (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:int (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pmain (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pdist (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pcomplete (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:jit (Java 21 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pjruby-jars (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:slow_suites (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:slow_suites (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / regression-specs-jit

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:jit (Java 27 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pmain,test -Dinvoker.test=extended (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:aot (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:aot (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / jruby-tests-dev

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Posgi (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:jit (Java 25 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pjruby_complete_jar_extended -Dinvoker.skip=true (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pjruby_complete_jar_extended -Dinvoker.skip=true (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / Verify build artifacts

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:mri:extra (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Ptest (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ruby:fast:jit (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 491 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:mri:extra (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated
public final CallSite readlines = new NormalCachingCallSite("readlines");

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:profiler (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ji (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ruby:debug (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ruby:debug (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ffi (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 27 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 25 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:profiler (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pmain,test -Dinvoker.test=extended (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ji (Java 25 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ffi (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:regression (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jrubyc (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:slow_suites (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pcomplete (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / Dependency check

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pjruby-jars,test -Dinvoker.test=extended (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jrubyc (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ji (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ji (Java 21 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jrubyc (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:regression (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:int (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 21 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ffi (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / Build JRuby release artifacts (21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:jruby (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pdist (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:int (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pmain (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pdist (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pcomplete (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:jit (Java 21 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pjruby-jars (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:slow_suites (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:slow_suites (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / regression-specs-jit

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:jit (Java 27 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pmain,test -Dinvoker.test=extended (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:aot (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:aot (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / jruby-tests-dev

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Posgi (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:jruby:jit (Java 25 -indy)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pjruby_complete_jar_extended -Dinvoker.skip=true (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:compiler (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Pjruby_complete_jar_extended -Dinvoker.skip=true (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / Verify build artifacts

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:mri:extra (Java 21)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / mvn -Ptest (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake spec:ruby:fast:jit (Java 27)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated

Check warning on line 492 in core/src/main/java/org/jruby/runtime/JavaSites.java

View workflow job for this annotation

GitHub Actions / rake test:mri:extra (Java 25)

[deprecation] NormalCachingCallSite in org.jruby.runtime.callsite has been deprecated
}

public static class TracePointSites {
Expand Down
23 changes: 23 additions & 0 deletions spec/ruby/core/argf/gets_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -47,3 +47,26 @@
end

end

describe "ARGF.gets when reading $stdin and $stdin is not an IO" do
before :each do
@stdin = $stdin
$stdin = StringIO.new("a\nb\n")
@argf_stdin = ARGF.class.new
end

after :each do
$stdin = @stdin
end

it "increments lineno for each line read" do
@argf_stdin.gets
@argf_stdin.gets
@argf_stdin.lineno.should == 2
end

it "raises NoMethodError when $stdin has no public gets" do
$stdin = Object.new
-> { ARGF.class.new.gets }.should raise_error(NoMethodError)
end
end
30 changes: 30 additions & 0 deletions spec/ruby/core/argf/readline_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,33 @@
end
end
end

describe "ARGF.readline when reading $stdin and $stdin is not an IO" do
before :each do
@stdin = $stdin
end

after :each do
$stdin = @stdin
end

it "calls readline on $stdin" do
$stdin = mock("stdin")
$stdin.should_receive(:readline).with("\n", 1, chomp: true).and_return("line")
ARGF.class.new.readline("\n", 1, chomp: true).should == "line"
end

it "raises an EOFError when reaching end of $stdin" do
$stdin = StringIO.new("a\n")
argf = ARGF.class.new
argf.readline.should == "a\n"
-> { argf.readline }.should raise_error(EOFError)
end

it "raises NoMethodError when $stdin has no public readline" do
stdin = Object.new
def stdin.gets(*) = "line\n"
$stdin = stdin
-> { ARGF.class.new.readline }.should raise_error(NoMethodError)
end
end
15 changes: 15 additions & 0 deletions spec/ruby/core/argf/readlines_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,18 @@
describe "ARGF.readlines" do
it_behaves_like :argf_readlines, :readlines
end

describe "ARGF.readlines when reading $stdin and $stdin is not an IO" do
before :each do
@stdin = $stdin
end

after :each do
$stdin = @stdin
end

it "raises NoMethodError when $stdin has no public readlines" do
$stdin = Object.new
-> { ARGF.class.new.readlines }.should raise_error(NoMethodError)
end
end
23 changes: 23 additions & 0 deletions spec/ruby/core/argf/shared/gets.rb
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
require 'stringio'

describe :argf_gets, shared: true do
before :each do
@file1_name = fixture __FILE__, "file1.txt"
Expand Down Expand Up @@ -33,6 +35,27 @@
end
end

describe "when reading $stdin and $stdin is not an IO" do
before :each do
@stdin = $stdin
$stdin = StringIO.new("a\nb\n")
@stdin_argf = ARGF.class.new
end

after :each do
$stdin = @stdin
end

it "reads each line of $stdin" do
@stdin_argf.send(@method).should == "a\n"
@stdin_argf.send(@method).should == "b\n"
end

it "passes keywords on to $stdin" do
@stdin_argf.send(@method, chomp: true).should == "a"
end
end

it "reads all lines of a file" do
argf [@file1_name] do
lines = []
Expand Down
Loading