From a356fe1c3550892902103f66928426ac8279e072 Mon Sep 17 00:00:00 2001 From: nobu Date: Thu, 22 Oct 2015 06:30:12 +0000 Subject: Safe navigation operator * compile.c (iseq_peephole_optimize): peephole optimization for branchnil jumps. * compile.c (iseq_compile_each): generate save navigation operator code. * insns.def (branchnil): new opcode to pop the tos and branch if it is nil. * parse.y (NEW_QCALL, call_op, parser_yylex): parse token '.?'. [Feature #11537] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- NEWS | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'NEWS') diff --git a/NEWS b/NEWS index 800974eadd..8a2c7f5846 100644 --- a/NEWS +++ b/NEWS @@ -18,6 +18,17 @@ with all sufficient information, see the ChangeLog file. * besides, --enable/--disable=frozen-string-literal options also have been introduced. +* safe navigation operator: + + * new method call syntax, `object.?foo', method #foo is called on + `object' if it is not nil. + this is similar to `try!' in ActiveSupport, except for: + * method name is syntactically required + obj.try! {} # valid + obj.? {} # syntax error + * attribute assignment is valid + obj.?attr += 1 + === Core classes updates (outstanding ones only) * ARGF -- cgit v1.2.3