summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--proc.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/proc.c b/proc.c
index a3dcc0c970..a994c3157b 100644
--- a/proc.c
+++ b/proc.c
@@ -107,6 +107,30 @@ proc_clone(VALUE self)
return procval;
}
+/*
+ * call-seq:
+ * prc.lambda? => true or false
+ *
+ * Returns true for a Proc object which argument check is rigid.
+ * Such procs are typically generated by lambda.
+ *
+ * lambda {}.lambda? => true
+ *
+ * proc {}.lambda? => false
+ * Proc.new {}.lambda? => false
+ *
+ * def m() end
+ * method(:m).to_proc.lambda? => true
+ *
+ * def n(&b) b.lambda? end
+ * n {} => false
+ * n(&lambda {}) => true
+ * n(&method(:m)) => true
+ * n(&proc {}) => false
+ * n(&Proc.new {}) => false
+ *
+ */
+
static VALUE
proc_lambda_p(VALUE procval)
{