rhodes 3.1.1 → 3.2.0.beta.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +5 -2
- data/doc/alert-api.txt +51 -0
- data/doc/build.txt +52 -43
- data/doc/configuration.txt +9 -5
- data/doc/connect-to-web-services.txt +4 -4
- data/doc/device-caps.txt +80 -28
- data/doc/extensions.txt +1 -1
- data/doc/install.txt +1 -1
- data/doc/introduction.txt +1 -1
- data/doc/rhodes-api.txt +62 -62
- data/doc/rhom.txt +36 -23
- data/doc/{rhodes-api/ringtonemanager-api.txt → ringtonemanager-api.txt} +0 -0
- data/doc/scanner.txt +507 -0
- data/doc/simulator.txt +6 -1
- data/doc/synchronization.txt +32 -27
- data/doc/{rhodes-api/timer-api.txt → timer-api.txt} +1 -1
- data/doc/tutorial.txt +8 -8
- data/installer/OLD-README.html +81 -0
- data/installer/README.html +6 -4
- data/installer/RHOSTUDIO-LICENSE.txt +675 -0
- data/installer/rhostudio.nsi +147 -20
- data/lib/build/compileRB/compileRB.rb +5 -2
- data/lib/build/jake.rb +3 -2
- data/lib/extensions/barcode/ext/barcode/platform/android/Rakefile +1 -1
- data/lib/extensions/barcode/ext/barcode/platform/bb/Rakefile +1 -1
- data/lib/extensions/barcode/ext/barcode/shared/ruby/barcode_wrap.c +391 -111
- data/lib/extensions/digest-md5/ext/Rakefile +1 -1
- data/lib/extensions/digest-sha1/ext/Rakefile +1 -1
- data/lib/extensions/digest/ext/Rakefile +1 -1
- data/lib/extensions/fcntl/ext/Rakefile +1 -1
- data/lib/extensions/mspec/mspec/expectations/expectations.rb +4 -4
- data/lib/extensions/mspec/mspec/expectations/should.rb +9 -8
- data/lib/extensions/mspec/mspec/guards.rb +3 -0
- data/lib/extensions/mspec/mspec/guards/conflict.rb +7 -2
- data/lib/extensions/mspec/mspec/guards/endian.rb +7 -10
- data/lib/extensions/mspec/mspec/guards/feature.rb +47 -0
- data/lib/extensions/mspec/mspec/guards/guard.rb +18 -13
- data/lib/extensions/mspec/mspec/guards/platform.rb +4 -0
- data/lib/extensions/mspec/mspec/guards/specified.rb +66 -0
- data/lib/extensions/mspec/mspec/guards/user.rb +17 -0
- data/lib/extensions/mspec/mspec/helpers.rb +6 -4
- data/lib/extensions/mspec/mspec/helpers/const_lookup.rb +2 -1
- data/lib/extensions/mspec/mspec/helpers/datetime.rb +30 -0
- data/lib/extensions/mspec/mspec/helpers/ducktype.rb +4 -4
- data/lib/extensions/mspec/mspec/helpers/encode.rb +21 -0
- data/lib/extensions/mspec/mspec/helpers/environment.rb +13 -9
- data/lib/extensions/mspec/mspec/helpers/fixture.rb +2 -1
- data/lib/extensions/mspec/mspec/helpers/flunk.rb +1 -1
- data/lib/extensions/mspec/mspec/helpers/fmode.rb +15 -0
- data/lib/extensions/mspec/mspec/helpers/io.rb +21 -2
- data/lib/extensions/mspec/mspec/helpers/language_version.rb +13 -3
- data/lib/extensions/mspec/mspec/helpers/numeric.rb +89 -0
- data/lib/extensions/mspec/mspec/helpers/ruby_exe.rb +138 -123
- data/lib/extensions/mspec/mspec/helpers/singleton_class.rb +7 -0
- data/lib/extensions/mspec/mspec/helpers/stasy.rb +33 -0
- data/lib/extensions/mspec/mspec/helpers/tmp.rb +34 -26
- data/lib/extensions/mspec/mspec/matchers.rb +9 -0
- data/lib/extensions/mspec/mspec/matchers/base.rb +14 -14
- data/lib/extensions/mspec/mspec/matchers/be_computed_by.rb +36 -0
- data/lib/extensions/mspec/mspec/matchers/be_computed_by_function.rb +35 -0
- data/lib/extensions/mspec/mspec/matchers/be_valid_dns_name.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/equal_utf16.rb +5 -7
- data/lib/extensions/mspec/mspec/matchers/have_class_variable.rb +12 -0
- data/lib/extensions/mspec/mspec/matchers/have_constant.rb +6 -24
- data/lib/extensions/mspec/mspec/matchers/have_data.rb +49 -0
- data/lib/extensions/mspec/mspec/matchers/have_instance_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_instance_variable.rb +12 -0
- data/lib/extensions/mspec/mspec/matchers/have_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_private_instance_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_private_method.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/have_protected_instance_method.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/have_public_instance_method.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/have_singleton_method.rb +24 -0
- data/lib/extensions/mspec/mspec/matchers/output_to_fd.rb +71 -71
- data/lib/extensions/mspec/mspec/matchers/raise_error.rb +4 -3
- data/lib/extensions/mspec/mspec/matchers/stringsymboladapter.rb +1 -1
- data/lib/extensions/mspec/mspec/matchers/variable.rb +28 -0
- data/lib/extensions/mspec/mspec/mocks/mock.rb +102 -60
- data/lib/extensions/mspec/mspec/mocks/object.rb +5 -1
- data/lib/extensions/mspec/mspec/mocks/proxy.rb +41 -6
- data/lib/extensions/mspec/mspec/runner.rb +1 -0
- data/lib/extensions/mspec/mspec/runner/actions/debug.rb +2 -0
- data/lib/extensions/mspec/mspec/runner/context.rb +58 -13
- data/lib/extensions/mspec/mspec/runner/exception.rb +7 -6
- data/lib/extensions/mspec/mspec/runner/formatters.rb +1 -0
- data/lib/extensions/mspec/mspec/runner/formatters/dotted.rb +15 -3
- data/lib/extensions/mspec/mspec/runner/formatters/profile.rb +70 -0
- data/lib/extensions/mspec/mspec/runner/mspec.rb +32 -19
- data/lib/extensions/mspec/mspec/runner/object.rb +4 -0
- data/lib/extensions/mspec/mspec/runner/shared.rb +1 -1
- data/lib/extensions/mspec/mspec/utils/name_map.rb +8 -1
- data/lib/extensions/mspec/mspec/utils/options.rb +25 -8
- data/lib/extensions/mspec/mspec/utils/ruby_name.rb +1 -1
- data/lib/extensions/mspec/mspec/utils/script.rb +4 -4
- data/lib/extensions/mspec/mspec/version.rb +1 -1
- data/lib/extensions/nfc/ext/nfc/platform/android/Rakefile +1 -1
- data/lib/extensions/nfc/ext/nfc/shared/ruby/nfc_wrap.c +427 -149
- data/lib/extensions/set/tsort.rb +242 -0
- data/lib/extensions/thread/monitor.rb +277 -0
- data/lib/extensions/thread/thread.rb +357 -0
- data/lib/framework/base64.rb +4 -4
- data/lib/framework/date/format.rb +36 -64
- data/lib/framework/dateOrig.rb +40 -23
- data/lib/framework/ostruct.rb +14 -8
- data/lib/framework/rational.rb +2 -2
- data/lib/framework/rbconfig.rb +71 -0
- data/lib/framework/rho/rho.rb +46 -43
- data/lib/framework/rho/rhocontact.rb +60 -36
- data/lib/framework/rho/rhofsconnector.rb +2 -2
- data/lib/framework/rho/rhoutils.rb +10 -6
- data/lib/framework/rhodes.rb +1 -1
- data/lib/framework/rhoframework.rb +0 -13
- data/lib/framework/rhom/rhom.rb +64 -1
- data/lib/framework/rhom/rhom_object_factory.rb +4 -4
- data/lib/framework/rhosystem.rb +27 -25
- data/lib/framework/time.rb +48 -16
- data/lib/framework/version.rb +1 -1
- data/lib/rhodes.rb +1 -1
- data/lib/test/framework_test.rb +1 -1
- data/platform/android/Rhodes/AndroidManifest.xml +35 -9
- data/platform/android/Rhodes/default.properties +1 -1
- data/platform/android/Rhodes/jni/Android.mk +5 -4
- data/platform/android/Rhodes/jni/include/rhodes.h +65 -3
- data/platform/android/Rhodes/jni/include/rhodes/JNIRhodes.h +3 -1
- data/platform/android/Rhodes/jni/include/rhodes/jni/com_rhomobile_rhodes_geolocation_GeoLocationImpl.h +12 -2
- data/platform/android/Rhodes/jni/src/callbacks.cpp +6 -2
- data/platform/android/Rhodes/jni/src/event.cpp +60 -1
- data/platform/android/Rhodes/jni/src/geolocation.cpp +42 -13
- data/platform/android/Rhodes/jni/src/mapview.cpp +169 -42
- data/platform/android/Rhodes/jni/src/phonebook.cpp +90 -74
- data/platform/android/Rhodes/jni/src/rhodes.cpp +91 -3
- data/platform/android/Rhodes/jni/src/rhodesapp.cpp +1 -1
- data/platform/android/Rhodes/res/drawable/callout_a1.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_a2.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_a3.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_b1.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_b2.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_b3.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_c1.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_c2.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_c3.png +0 -0
- data/platform/android/Rhodes/res/drawable/callout_d.png +0 -0
- data/platform/android/Rhodes/res/drawable/google.png +0 -0
- data/platform/android/Rhodes/res/drawable/location.png +0 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/AndroidR.java +12 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesActivity.java +44 -21
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/RhodesService.java +12 -25
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/alert/PopupActivity.java +2 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/bluetooth/RhoBluetoothDeviceListActivity.java +2 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/CameraSettings.java +11 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/camera/ImageCapture.java +13 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/Event.java +7 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/event/EventStore.java +127 -37
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocation.java +69 -23
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/geolocation/GeoLocationImpl.java +287 -124
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Annotation.java +6 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/AnnotationsOverlay.java +57 -6
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/Callout.java +296 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/CalloutOverlay.java +143 -0
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/GoogleMapView.java +109 -3
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/mapview/MapView.java +53 -5
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Contact.java +16 -119
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessor.java +4 -1
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorNew.java +284 -120
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/ContactAccessorOld.java +58 -23
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/phonebook/Phonebook.java +42 -77
- data/platform/android/Rhodes/src/com/rhomobile/rhodes/util/PerformOnUiThread.java +1 -1
- data/platform/android/build/RhodesSRC_build.files +2 -0
- data/platform/android/build/android.rake +90 -40
- data/platform/android/build/android_tools.rb +16 -0
- data/platform/android/build/androidcommon.rb +2 -0
- data/platform/android/build/librhocommon_build.files +3 -0
- data/platform/android/build/libruby_build.files +2 -1
- data/platform/bb/RubyVM/src/com/rho/net/AsyncHttp.java +6 -2
- data/platform/bb/RubyVM/src/com/rho/sync/ClientRegister.java +3 -2
- data/platform/bb/RubyVM/src/com/rho/sync/SyncEngine.java +17 -24
- data/platform/bb/RubyVM/src/com/rho/sync/SyncNotify.java +26 -2
- data/platform/bb/RubyVM/src/com/rho/sync/SyncProtocol_3.java +6 -1
- data/platform/bb/RubyVM/src/com/rho/sync/SyncSource.java +4 -0
- data/platform/bb/RubyVM/src/com/rho/sync/SyncThread.java +50 -54
- data/platform/bb/build/bb.rake +4 -4
- data/platform/bb/rhodes/src/com/rho/rubyext/RhoPhonebook.java +6 -6
- data/platform/bb/rhodes/src/rhomobile/camera/Camera.java +7 -0
- data/platform/bb/rhodes/src/rhomobile/mapview/MapView.java +10 -0
- data/platform/iphone/Classes/AppManager/AppManager.m +29 -0
- data/platform/iphone/Classes/Dispatcher/Dispatcher.c +1 -1
- data/platform/iphone/Classes/GeoLocation/LocationController.h +2 -1
- data/platform/iphone/Classes/GeoLocation/LocationController.m +23 -0
- data/platform/iphone/Classes/MapView/MapAnnotation.h +6 -0
- data/platform/iphone/Classes/MapView/MapAnnotation.m +5 -1
- data/platform/iphone/Classes/MapView/MapViewController.m +48 -4
- data/platform/iphone/Classes/MapView/MapViewManager.m +7 -0
- data/platform/iphone/Classes/Phonebook/phonebook.m +44 -0
- data/platform/iphone/Classes/Rhodes.m +1 -1
- data/platform/iphone/Info.plist +1 -1
- data/platform/iphone/RhoLib/RhoLib.xcodeproj/project.pbxproj +3 -3
- data/platform/iphone/curl/curl.xcodeproj/project.pbxproj +3 -3
- data/platform/iphone/rbuild/iphone.rake +3 -1
- data/platform/iphone/rhoextlib/rhoextlib.xcodeproj/project.pbxproj +3 -3
- data/platform/iphone/rhorubylib/rhorubylib.xcodeproj/project.pbxproj +18 -7
- data/platform/iphone/rhorunner.xcodeproj/project.pbxproj +3 -2
- data/platform/iphone/rhosynclib/rhosynclib.xcodeproj/project.pbxproj +3 -3
- data/platform/linux/files.txt +2 -2
- data/platform/linux/target/compiler/rubylinux +0 -0
- data/platform/mac/RubyMac/RubyMac.xcodeproj/project.pbxproj +8 -2
- data/platform/osx/bin/RhoSimulator/RhoSimulator.app/Contents/MacOS/RhoSimulator +0 -0
- data/platform/osx/build/osx.rake +1 -3
- data/platform/shared/RhoConnectClient/RhoConnectClient.cpp +65 -26
- data/platform/shared/RhoConnectClient/RhoConnectClient.h +5 -1
- data/platform/shared/common/Android.mk +3 -0
- data/platform/shared/common/AppMenu.cpp +2 -2
- data/platform/shared/common/RhoPort.h +2 -2
- data/platform/shared/common/RhodesApp.cpp +20 -2
- data/platform/shared/common/RhodesApp.h +1 -0
- data/platform/shared/common/ThreadQueue.cpp +5 -0
- data/platform/shared/common/ThreadQueue.h +1 -0
- data/platform/shared/common/map/BaseMapEngine.cpp +1393 -0
- data/platform/shared/common/map/BaseMapEngine.h +368 -0
- data/platform/shared/common/map/ESRIMapEngine.cpp +23 -896
- data/platform/shared/common/map/ESRIMapEngine.h +11 -243
- data/platform/shared/common/map/GeocodingMapEngine.cpp +200 -0
- data/platform/shared/common/map/GeocodingMapEngine.h +86 -0
- data/platform/shared/common/map/GoogleMapEngine.cpp +70 -135
- data/platform/shared/common/map/GoogleMapEngine.h +21 -38
- data/platform/shared/common/map/MapEngine.cpp +145 -24
- data/platform/shared/common/map/MapEngine.h +156 -54
- data/platform/shared/common/map/OSMMapEngine.cpp +94 -0
- data/platform/shared/common/map/OSMMapEngine.h +65 -0
- data/platform/shared/curl/lib/config-symbian.h +3 -1
- data/platform/shared/db/DBAdapter.cpp +30 -4
- data/platform/shared/db/DBAdapter.h +24 -1
- data/platform/shared/logging/RhoLog.h +26 -0
- data/platform/shared/net/AsyncHttp.cpp +6 -2
- data/platform/shared/net/CompatWince.cpp +1 -0
- data/platform/shared/net/HttpServer.cpp +5 -2
- data/platform/shared/qt/rhodes/RhoSimulator.h +1 -1
- data/platform/shared/qt/rhodes/impl/GeoLocationImpl.cpp +6 -0
- data/platform/shared/qt/rhodes/impl/MapViewImpl.cpp +4 -0
- data/platform/shared/qt/rhodes/impl/PhonebookImpl.cpp +12 -0
- data/platform/shared/qt/rhodes/impl/SystemImpl.cpp +26 -0
- data/platform/shared/qt/rholib/rholib.pro +14 -19
- data/platform/shared/qt/rubylib/rubylib.pro +7 -4
- data/platform/shared/ruby/Android.mk +3 -2
- data/platform/shared/ruby/GPL +340 -0
- data/platform/shared/ruby/android/ruby/config.h +283 -0
- data/platform/shared/ruby/array.c +1318 -595
- data/platform/shared/ruby/bignum.c +1092 -278
- data/platform/shared/ruby/class.c +689 -201
- data/platform/shared/ruby/compar.c +22 -20
- data/platform/shared/ruby/compile.c +327 -249
- data/platform/shared/ruby/complex.c +593 -138
- data/platform/shared/ruby/cont.c +213 -95
- data/platform/shared/ruby/debug.c +15 -10
- data/platform/shared/ruby/debug.h +1 -1
- data/platform/shared/ruby/dir.c +247 -104
- data/platform/shared/ruby/dln.c +102 -309
- data/platform/shared/ruby/dln.h +3 -3
- data/platform/shared/ruby/dln_find.c +305 -0
- data/platform/shared/ruby/dmydln.c +7 -2
- data/platform/shared/ruby/dmyversion.c +2 -0
- data/platform/shared/ruby/enc/Makefile.in +1 -0
- data/platform/shared/ruby/enc/big5.c +142 -5
- data/platform/shared/ruby/enc/depend +1 -0
- data/platform/shared/ruby/enc/emacs_mule.c +1 -1
- data/platform/shared/ruby/enc/encdb.c +3 -1
- data/platform/shared/ruby/enc/euc_tw.c +1 -10
- data/platform/shared/ruby/enc/iso_2022_jp.h +36 -0
- data/platform/shared/ruby/enc/iso_8859_5.c +1 -1
- data/platform/shared/ruby/enc/koi8_r.c +1 -1
- data/platform/shared/ruby/enc/koi8_u.c +1 -1
- data/platform/shared/ruby/enc/prelude.rb +1 -1
- data/platform/shared/ruby/enc/shift_jis.c +3 -3
- data/platform/shared/ruby/enc/trans/big5-hkscs-tbl.rb +18385 -0
- data/platform/shared/ruby/enc/trans/big5-uao-tbl.rb +19784 -0
- data/platform/shared/ruby/enc/trans/big5.c +53810 -12566
- data/platform/shared/ruby/enc/trans/big5.trans +10 -1
- data/platform/shared/ruby/enc/trans/chinese.c +113 -71
- data/platform/shared/ruby/enc/trans/chinese.trans +6 -4
- data/platform/shared/ruby/enc/trans/escape.c +3 -3
- data/platform/shared/ruby/enc/trans/escape.trans +3 -3
- data/platform/shared/ruby/enc/trans/gb18030-tbl.rb +32 -0
- data/platform/shared/ruby/enc/trans/gb18030.c +17431 -91305
- data/platform/shared/ruby/enc/trans/gb18030.trans +105 -5
- data/platform/shared/ruby/enc/trans/gbk.c +13 -13
- data/platform/shared/ruby/enc/trans/iso2022.c +374 -13
- data/platform/shared/ruby/enc/trans/iso2022.trans +313 -0
- data/platform/shared/ruby/enc/trans/japanese.c +26 -24
- data/platform/shared/ruby/enc/trans/japanese_euc.c +30 -30
- data/platform/shared/ruby/enc/trans/japanese_sjis.c +282 -276
- data/platform/shared/ruby/enc/trans/korean.c +182 -159
- data/platform/shared/ruby/enc/trans/newline.c +18 -14
- data/platform/shared/ruby/enc/trans/newline.trans +15 -11
- data/platform/shared/ruby/enc/trans/single_byte.c +497 -394
- data/platform/shared/ruby/enc/trans/single_byte.trans +1 -2
- data/platform/shared/ruby/enc/trans/transdb.c +1 -1
- data/platform/shared/ruby/enc/trans/utf8_mac-tbl.rb +945 -0
- data/platform/shared/ruby/enc/trans/utf8_mac.c +10853 -0
- data/platform/shared/ruby/enc/trans/utf8_mac.trans +242 -0
- data/platform/shared/ruby/enc/trans/utf_16_32.c +89 -86
- data/platform/shared/ruby/enc/unicode.c +30 -8779
- data/platform/shared/ruby/enc/unicode/name2ctype.h +17985 -0
- data/platform/shared/ruby/enc/unicode/name2ctype.h.blt +17985 -0
- data/platform/shared/ruby/enc/unicode/name2ctype.kwd +16711 -0
- data/platform/shared/ruby/enc/unicode/name2ctype.src +16711 -0
- data/platform/shared/ruby/enc/utf_16be.c +3 -4
- data/platform/shared/ruby/enc/utf_16le.c +3 -4
- data/platform/shared/ruby/enc/utf_8.c +3 -1
- data/platform/shared/ruby/enc/x_emoji.h +26 -0
- data/platform/shared/ruby/encdb.h +18 -2
- data/platform/shared/ruby/encoding.c +248 -111
- data/platform/shared/ruby/enum.c +1006 -200
- data/platform/shared/ruby/enumerator.c +555 -254
- data/platform/shared/ruby/error.c +478 -79
- data/platform/shared/ruby/eval.c +186 -94
- data/platform/shared/ruby/eval_error.c +16 -10
- data/platform/shared/ruby/eval_intern.h +24 -9
- data/platform/shared/ruby/eval_jump.c +2 -1
- data/platform/shared/ruby/ext/geolocation/geolocation.i +10 -1
- data/platform/shared/ruby/ext/geolocation/geolocation_wrap.c +49 -6
- data/platform/shared/ruby/ext/mapview/mapview.i +6 -0
- data/platform/shared/ruby/ext/mapview/mapview_wrap.c +279 -0
- data/platform/shared/ruby/ext/nativebar/nativebar_wrap.c +402 -124
- data/platform/shared/ruby/ext/phonebook/phonebook.i +41 -7
- data/platform/shared/ruby/ext/phonebook/phonebook_wrap.c +216 -47
- data/platform/shared/ruby/ext/rho/rhoruby.c +9 -5
- data/platform/shared/ruby/ext/rho/rhosupport.c +1 -1
- data/platform/shared/ruby/ext/socket/getaddrinfo.c +4 -0
- data/platform/shared/ruby/ext/sqlite3_api/sqlite3_api_wrap.c +2 -2
- data/platform/shared/ruby/ext/syncengine/syncengine.i +14 -5
- data/platform/shared/ruby/ext/syncengine/syncengine_wrap.c +55 -7
- data/platform/shared/ruby/ext/system/system.i +7 -2
- data/platform/shared/ruby/ext/system/system_wrap.c +28 -2
- data/platform/shared/ruby/file.c +1243 -683
- data/platform/shared/ruby/gc.c +509 -217
- data/platform/shared/ruby/gc.h +7 -5
- data/platform/shared/ruby/generated/insns.inc +11 -9
- data/platform/shared/ruby/generated/insns_info.inc +69 -62
- data/platform/shared/ruby/generated/known_errors.inc +360 -245
- data/platform/shared/ruby/generated/lex.c +49 -47
- data/platform/shared/ruby/generated/node_name.inc +0 -8
- data/platform/shared/ruby/generated/optinsn.inc +1 -1
- data/platform/shared/ruby/generated/parse.c +4480 -4162
- data/platform/shared/ruby/generated/parse.h +13 -14
- data/platform/shared/ruby/generated/vm.inc +485 -269
- data/platform/shared/ruby/generated/vmtc.inc +2 -1
- data/platform/shared/ruby/golf_prelude.c +21 -4
- data/platform/shared/ruby/goruby.c +1 -1
- data/platform/shared/ruby/hash.c +429 -180
- data/platform/shared/ruby/ia64.s +42 -0
- data/platform/shared/ruby/id.c +13 -14
- data/platform/shared/ruby/id.h +25 -18
- data/platform/shared/ruby/include/ruby.h +1 -1
- data/platform/shared/ruby/include/ruby/backward/rubysig.h +2 -2
- data/platform/shared/ruby/include/ruby/defines.h +50 -29
- data/platform/shared/ruby/include/ruby/encoding.h +40 -14
- data/platform/shared/ruby/include/ruby/intern.h +81 -24
- data/platform/shared/ruby/include/ruby/io.h +4 -4
- data/platform/shared/ruby/include/ruby/missing.h +28 -18
- data/platform/shared/ruby/include/ruby/oniguruma.h +22 -7
- data/platform/shared/ruby/include/ruby/re.h +4 -4
- data/platform/shared/ruby/include/ruby/ruby.h +294 -76
- data/platform/shared/ruby/include/ruby/st.h +27 -9
- data/platform/shared/ruby/include/ruby/util.h +14 -6
- data/platform/shared/ruby/include/ruby/version.h +61 -0
- data/platform/shared/ruby/include/ruby/vm.h +21 -1
- data/platform/shared/ruby/include/ruby/win32.h +223 -63
- data/platform/shared/ruby/inits.c +1 -1
- data/platform/shared/ruby/insns.def +236 -111
- data/platform/shared/ruby/io.c +2188 -774
- data/platform/shared/ruby/iphone/ruby/config.h +75 -45
- data/platform/shared/ruby/iseq.c +261 -104
- data/platform/shared/ruby/iseq.h +13 -11
- data/platform/shared/ruby/linux/ruby/config.h +95 -100
- data/platform/shared/ruby/load.c +115 -81
- data/platform/shared/ruby/main.c +122 -0
- data/platform/shared/ruby/marshal.c +418 -230
- data/platform/shared/ruby/math.c +219 -152
- data/platform/shared/ruby/method.h +103 -0
- data/platform/shared/ruby/miniprelude.c +35 -23
- data/platform/shared/ruby/missing/acosh.c +4 -4
- data/platform/shared/ruby/missing/alloca.c +4 -1
- data/platform/shared/ruby/missing/close.c +67 -0
- data/platform/shared/ruby/missing/crypt.c +9 -9
- data/platform/shared/ruby/missing/dup2.c +0 -1
- data/platform/shared/ruby/missing/langinfo.c +4 -3
- data/platform/shared/ruby/missing/signbit.c +19 -0
- data/platform/shared/ruby/newline.c +18 -14
- data/platform/shared/ruby/node.c +921 -0
- data/platform/shared/ruby/node.h +14 -47
- data/platform/shared/ruby/numeric.c +544 -302
- data/platform/shared/ruby/object.c +430 -426
- data/platform/shared/ruby/pack.c +677 -628
- data/platform/shared/ruby/parse.y +847 -523
- data/platform/shared/ruby/proc.c +631 -341
- data/platform/shared/ruby/process.c +811 -421
- data/platform/shared/ruby/random.c +858 -177
- data/platform/shared/ruby/range.c +234 -133
- data/platform/shared/ruby/rational.c +936 -173
- data/platform/shared/ruby/re.c +351 -192
- data/platform/shared/ruby/regcomp.c +125 -138
- data/platform/shared/ruby/regenc.c +26 -25
- data/platform/shared/ruby/regenc.h +7 -3
- data/platform/shared/ruby/regerror.c +44 -34
- data/platform/shared/ruby/regexec.c +31 -38
- data/platform/shared/ruby/regint.h +16 -17
- data/platform/shared/ruby/regparse.c +266 -136
- data/platform/shared/ruby/regparse.h +4 -1
- data/platform/shared/ruby/regsyntax.c +2 -2
- data/platform/shared/ruby/revision.h +0 -1
- data/platform/shared/ruby/ruby.c +276 -248
- data/platform/shared/ruby/safe.c +14 -8
- data/platform/shared/ruby/signal.c +61 -68
- data/platform/shared/ruby/sprintf.c +77 -38
- data/platform/shared/ruby/st.c +437 -61
- data/platform/shared/ruby/strftime.c +252 -110
- data/platform/shared/ruby/string.c +1361 -1009
- data/platform/shared/ruby/struct.c +200 -133
- data/platform/shared/ruby/symbian/ruby/config.h +56 -24
- data/platform/shared/ruby/thread.c +732 -247
- data/platform/shared/ruby/thread_pthread.c +122 -69
- data/platform/shared/ruby/thread_pthread.h +4 -1
- data/platform/shared/ruby/thread_win32.c +73 -41
- data/platform/shared/ruby/thread_win32.h +1 -1
- data/platform/shared/ruby/time.c +3271 -919
- data/platform/shared/ruby/timev.h +21 -0
- data/platform/shared/ruby/transcode.c +289 -95
- data/platform/shared/ruby/transcode_data.h +17 -14
- data/platform/shared/ruby/transdb.h +32 -0
- data/platform/shared/ruby/util.c +330 -123
- data/platform/shared/ruby/variable.c +294 -176
- data/platform/shared/ruby/version.c +71 -2
- data/platform/shared/ruby/version.h +22 -19
- data/platform/shared/ruby/vm.c +368 -203
- data/platform/shared/ruby/vm_core.h +110 -66
- data/platform/shared/ruby/vm_dump.c +51 -44
- data/platform/shared/ruby/vm_eval.c +547 -230
- data/platform/shared/ruby/vm_exec.c +3 -3
- data/platform/shared/ruby/vm_insnhelper.c +397 -200
- data/platform/shared/ruby/vm_insnhelper.h +27 -14
- data/platform/shared/ruby/vm_method.c +493 -296
- data/platform/shared/ruby/vm_opts.h +1 -1
- data/platform/shared/ruby/{missing/vsnprintf.c → vsnprintf.c} +114 -74
- data/platform/shared/ruby/win32/dir.h +5 -4
- data/platform/shared/ruby/win32/miniprelude.c +34 -21
- data/platform/shared/ruby/win32/newline.c +18 -14
- data/platform/shared/ruby/win32/ruby/config.h +58 -20
- data/platform/shared/ruby/win32/win32.c +1398 -475
- data/platform/shared/ruby/wince/direct.c +17 -1
- data/platform/shared/ruby/wince/io_wce.c +16 -8
- data/platform/shared/ruby/wince/ruby/config.h +54 -24
- data/platform/shared/ruby/wince/sys/stat.c +81 -0
- data/platform/shared/ruby/wince/time_wce.c +47 -4
- data/platform/shared/ruby/wince/wince.h +16 -0
- data/platform/shared/rubyext/Android.mk +1 -1
- data/platform/shared/rubyext/GeoLocation.cpp +93 -48
- data/platform/shared/rubyext/GeoLocation.h +9 -4
- data/platform/shared/rubyext/System.cpp +6 -0
- data/platform/shared/sync/ClientRegister.cpp +1 -1
- data/platform/shared/sync/SyncEngine.cpp +15 -55
- data/platform/shared/sync/SyncEngine.h +4 -4
- data/platform/shared/sync/SyncProtocol_3.h +6 -1
- data/platform/shared/sync/SyncSource.cpp +6 -1
- data/platform/shared/sync/SyncSource.h +1 -0
- data/platform/shared/sync/SyncThread.cpp +20 -9
- data/platform/shared/sync/SyncThread.h +14 -9
- data/platform/shared/wtl80/include/atlapp.h +2 -0
- data/platform/symbian/build/symbian.rake +56 -5
- data/platform/symbian/curl/curl.pro +4 -0
- data/platform/symbian/rhodes/rhodes.pro +16 -4
- data/platform/symbian/rhodes/src/phonebook/ruby_phonebook.cpp +10 -0
- data/platform/symbian/rholib/rholib.pro +4 -0
- data/platform/symbian/rubylib/rubylib.pro +6 -2
- data/platform/symbian/sqlite3/sqlite3.pro +2 -1
- data/platform/symbian/syncengine/syncengine.pro +4 -0
- data/platform/win32/RhoSimulator/RhoSimulator.exe +0 -0
- data/platform/wm/RhoLib/RhoLib.vcproj +333 -0
- data/platform/wm/build/build_inf.js +1 -0
- data/platform/wm/build/wm.rake +43 -17
- data/platform/wm/rhodes.sln +140 -76
- data/platform/wm/rhodes/Alert.cpp +1 -1
- data/platform/wm/rhodes/IBrowserEngine.cpp +10 -0
- data/platform/wm/rhodes/IBrowserEngine.h +24 -0
- data/platform/wm/rhodes/IEBrowserEngine.cpp +179 -0
- data/platform/wm/rhodes/IEBrowserEngine.h +36 -0
- data/platform/wm/rhodes/MainWindow.cpp +176 -178
- data/platform/wm/rhodes/MainWindow.h +78 -20
- data/platform/wm/rhodes/MapView/Graphics.h +10 -0
- data/platform/wm/rhodes/MapView/MapViewManager.cpp +7 -0
- data/platform/wm/rhodes/OutlookApp.cpp +3 -3
- data/platform/wm/rhodes/RhoWebKitBrowser.cpp +10 -0
- data/platform/wm/rhodes/Rhodes.cpp +499 -443
- data/platform/wm/rhodes/bluetooth/Bluetooth.cpp +1 -4
- data/platform/wm/rhodes/bluetooth/Bluetooth.h +1 -1
- data/platform/wm/rhodes/camera/Camera.cpp +3 -6
- data/platform/wm/rhodes/phonebook/phonebook.cpp +20 -11
- data/platform/wm/rhodes/phonebook/phonebook.h +4 -2
- data/platform/wm/rhodes/rho/net/NetRequestImpl.cpp +3 -3
- data/platform/wm/rhodes/rho/rubyext/GeoLocationImpl.cpp +12 -7
- data/platform/wm/rhodes/rho/rubyext/GeoLocationImpl.h +1 -1
- data/platform/wm/rhodes/rho/rubyext/SystemImpl.cpp +24 -6
- data/platform/wm/rhodes/rho/rubyext/WebView.cpp +0 -32
- data/platform/wm/rhodes/rho/rubyext/calendar.cpp +1 -1
- data/platform/wm/rhodes/rhodes.vcproj +1792 -129
- data/platform/wm/rhodes/rhoelements/RhoWKBrowserEngine.cpp +384 -0
- data/platform/wm/rhodes/rhoelements/RhoWKBrowserEngine.h +41 -0
- data/platform/wm/rhodes/signature/Signature.cpp +4 -8
- data/platform/wm/rhodes/signature/Signature.h +1 -1
- data/platform/wm/rhodes/simulator/MainWindowQt.cpp +1 -0
- data/platform/wm/rhodes/simulator/MainWindowQt.h +2 -0
- data/platform/wm/rhodes/stdafx.h +17 -5
- data/platform/wm/rhoelements.sln +447 -0
- data/platform/wm/rubylib/rubylib.vcproj +355 -10
- data/platform/wm/sqlite3/sqlite3.vcproj +305 -0
- data/platform/wm/syncengine/syncengine.vcproj +309 -0
- data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.Libraries.dll +0 -0
- data/platform/wp7/IronRuby/bin/Silverlight3Release/IronRuby.dll +0 -0
- data/platform/wp7/RhoAppRunner/Program.cs +2 -2
- data/platform/wp7/RhoRubyExtGen/RhoCamera.cs +59 -0
- data/platform/wp7/RhoRubyExtGen/RhoNativeBar.cs +3 -20
- data/platform/wp7/RhoRubyExtGen/RhoRubyExtGen.csproj +1 -0
- data/platform/wp7/RhoRubyLib/Initializers.Generated.cs +6 -9
- data/platform/wp7/RhoRubyLib/RhoRubyLib.csproj +2 -1
- data/platform/wp7/RhoRubyLib/rubyext/RhoCamera.cs +130 -0
- data/platform/wp7/RhoRubyLib/rubyext/RhoNativeBar.cs +5 -73
- data/res/build-tools/RhoRuby.exe +0 -0
- data/res/build-tools/RubyMac +0 -0
- data/res/build-tools/detool.exe +0 -0
- data/res/build-tools/rubylinux +0 -0
- data/res/generators/rhogen.rb +5 -0
- data/res/generators/templates/application/app/helpers/browser_helper.rb +4 -0
- data/res/generators/templates/application/app/index.erb +6 -2
- data/res/generators/templates/application/app/layout.erb +8 -5
- data/res/generators/templates/application/build.yml +3 -1
- data/res/generators/templates/application/gitignore +7 -0
- data/res/generators/templates/application/public/css/android.css +366 -5
- data/res/generators/templates/application/public/css/blackberry.css +16 -5
- data/res/generators/templates/application/public/css/iphone.css +349 -5
- data/res/generators/templates/application/public/css/windows_mobile.css +105 -0
- data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0b2.css → jquery.mobile-1.0b3.css} +64 -5
- data/res/generators/templates/application/public/jqmobile/{jquery.mobile-1.0b2.js → jquery.mobile-1.0b3.js} +1125 -727
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b3.min.css +8 -0
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b3.min.js +169 -0
- data/res/generators/templates/application/public/jquery/{jquery-1.6.2.js → jquery-1.6.3.js} +226 -163
- data/res/generators/templates/application/public/jquery/jquery-1.6.3.min.js +4 -0
- data/res/generators/templates/application/public/js/wp7.js +5 -0
- data/res/generators/templates/model/edit.erb +6 -2
- data/res/generators/templates/model/index.erb +8 -4
- data/res/generators/templates/model/new.erb +3 -1
- data/res/generators/templates/model/show.erb +6 -2
- data/rhobuild.yml.example +0 -1
- data/rhodes.gemspec +1 -1
- data/spec/framework_spec/app/spec/core/argf/argf_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/argf/binmode_spec.rb +19 -7
- data/spec/framework_spec/app/spec/core/argf/bytes_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/chars_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/close_spec.rb +31 -5
- data/spec/framework_spec/app/spec/core/argf/closed_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/argf/each_byte_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/each_char_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/each_line_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/each_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/eof_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/file_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/argf/filename_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/fileno_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/getc_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/gets_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/lineno_spec.rb +24 -18
- data/spec/framework_spec/app/spec/core/argf/path_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/pos_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/read_spec.rb +19 -20
- data/spec/framework_spec/app/spec/core/argf/readchar_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/readline_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/argf/readlines_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/rewind_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/argf/seek_spec.rb +6 -4
- data/spec/framework_spec/app/spec/core/argf/shared/each_byte.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/each_char.rb +4 -4
- data/spec/framework_spec/app/spec/core/argf/shared/each_line.rb +9 -3
- data/spec/framework_spec/app/spec/core/argf/shared/eof.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/filename.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/fileno.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/getc.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/gets.rb +41 -43
- data/spec/framework_spec/app/spec/core/argf/shared/pos.rb +3 -3
- data/spec/framework_spec/app/spec/core/argf/shared/readlines.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/skip_spec.rb +12 -4
- data/spec/framework_spec/app/spec/core/argf/tell_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/to_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/argf/to_io_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/argf/to_s_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/allocate_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/append_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/array_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/array/assoc_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/array/at_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/array/choice_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/clear_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/clone_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/collect_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/combination_spec.rb +38 -13
- data/spec/framework_spec/app/spec/core/array/compact_spec.rb +33 -11
- data/spec/framework_spec/app/spec/core/array/comparison_spec.rb +11 -5
- data/spec/framework_spec/app/spec/core/array/concat_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/constructor_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/count_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/cycle_spec.rb +82 -14
- data/spec/framework_spec/app/spec/core/array/delete_at_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/delete_if_spec.rb +16 -7
- data/spec/framework_spec/app/spec/core/array/delete_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/array/drop_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/drop_while_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/dup_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/each_index_spec.rb +29 -30
- data/spec/framework_spec/app/spec/core/array/each_spec.rb +8 -33
- data/spec/framework_spec/app/spec/core/array/element_reference_spec.rb +30 -6
- data/spec/framework_spec/app/spec/core/array/element_set_spec.rb +19 -2
- data/spec/framework_spec/app/spec/core/array/empty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/eql_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/equal_value_spec.rb +34 -3
- data/spec/framework_spec/app/spec/core/array/fetch_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/fill_spec.rb +27 -12
- data/spec/framework_spec/app/spec/core/array/find_index_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/first_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/fixtures/classes.rb +447 -6
- data/spec/framework_spec/app/spec/core/array/flatten_spec.rb +42 -19
- data/spec/framework_spec/app/spec/core/array/frozen_spec.rb +17 -15
- data/spec/framework_spec/app/spec/core/array/hash_spec.rb +22 -3
- data/spec/framework_spec/app/spec/core/array/include_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/index_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/array/indexes_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/indices_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/initialize_copy_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/initialize_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/insert_spec.rb +13 -11
- data/spec/framework_spec/app/spec/core/array/inspect_spec.rb +33 -3
- data/spec/framework_spec/app/spec/core/array/intersection_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/join_spec.rb +24 -4
- data/spec/framework_spec/app/spec/core/array/keep_if_spec.rb +12 -0
- data/spec/framework_spec/app/spec/core/array/last_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/array/length_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/map_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/minus_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/array/multiply_spec.rb +23 -10
- data/spec/framework_spec/app/spec/core/array/new_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/nitems_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/pack/a_spec.rb +59 -0
- data/spec/framework_spec/app/spec/core/array/pack/at_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/array/pack/b_spec.rb +109 -0
- data/spec/framework_spec/app/spec/core/array/pack/c_spec.rb +83 -0
- data/spec/framework_spec/app/spec/core/array/pack/comment_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/d_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/array/pack/e_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/f_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/array/pack/g_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/h_spec.rb +201 -0
- data/spec/framework_spec/app/spec/core/array/pack/i_spec.rb +73 -0
- data/spec/framework_spec/app/spec/core/array/pack/l_spec.rb +193 -0
- data/spec/framework_spec/app/spec/core/array/pack/m_spec.rb +337 -0
- data/spec/framework_spec/app/spec/core/array/pack/n_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/percent_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/pack/q_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/array/pack/s_spec.rb +73 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/basic.rb +57 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/encodings.rb +16 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/float.rb +277 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/integer.rb +381 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/numeric_basic.rb +54 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/string.rb +83 -0
- data/spec/framework_spec/app/spec/core/array/pack/shared/unicode.rb +89 -0
- data/spec/framework_spec/app/spec/core/array/pack/u_spec.rb +130 -0
- data/spec/framework_spec/app/spec/core/array/pack/v_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/array/pack/w_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/array/pack/x_spec.rb +64 -0
- data/spec/framework_spec/app/spec/core/array/pack/z_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/array/pack_spec.rb +409 -369
- data/spec/framework_spec/app/spec/core/array/partition_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/array/permutation_spec.rb +34 -15
- data/spec/framework_spec/app/spec/core/array/plus_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/array/pop_spec.rb +17 -4
- data/spec/framework_spec/app/spec/core/array/product_spec.rb +49 -5
- data/spec/framework_spec/app/spec/core/array/push_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/array/rassoc_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/reject_spec.rb +42 -29
- data/spec/framework_spec/app/spec/core/array/repeated_combination_spec.rb +59 -0
- data/spec/framework_spec/app/spec/core/array/repeated_permutation_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/array/replace_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/reverse_each_spec.rb +26 -39
- data/spec/framework_spec/app/spec/core/array/reverse_spec.rb +15 -7
- data/spec/framework_spec/app/spec/core/array/rindex_spec.rb +28 -16
- data/spec/framework_spec/app/spec/core/array/rotate_spec.rb +85 -0
- data/spec/framework_spec/app/spec/core/array/sample_spec.rb +4 -10
- data/spec/framework_spec/app/spec/core/array/select_spec.rb +16 -3
- data/spec/framework_spec/app/spec/core/array/shared/clone.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/shared/collect.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/shared/enumeratorize.rb +12 -0
- data/spec/framework_spec/app/spec/core/array/shared/eql.rb +9 -5
- data/spec/framework_spec/app/spec/core/array/shared/indexes.rb +1 -1
- data/spec/framework_spec/app/spec/core/array/shared/join.rb +122 -90
- data/spec/framework_spec/app/spec/core/array/shared/keep_if.rb +11 -0
- data/spec/framework_spec/app/spec/core/array/shared/slice.rb +67 -6
- data/spec/framework_spec/app/spec/core/array/shift_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/array/shuffle_spec.rb +23 -14
- data/spec/framework_spec/app/spec/core/array/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/array/slice_spec.rb +19 -3
- data/spec/framework_spec/app/spec/core/array/sort_by_spec.rb +48 -0
- data/spec/framework_spec/app/spec/core/array/sort_spec.rb +65 -65
- data/spec/framework_spec/app/spec/core/array/take_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/take_while_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/array/to_a_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/array/to_ary_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/array/to_s_spec.rb +2 -5
- data/spec/framework_spec/app/spec/core/array/transpose_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/array/try_convert_spec.rb +15 -17
- data/spec/framework_spec/app/spec/core/array/union_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/array/uniq_spec.rb +41 -15
- data/spec/framework_spec/app/spec/core/array/unshift_spec.rb +9 -7
- data/spec/framework_spec/app/spec/core/array/values_at_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/array/zip_spec.rb +15 -3
- data/spec/framework_spec/app/spec/core/basicobject/__send___spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/ancestors_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/basicobject_spec.rb +67 -0
- data/spec/framework_spec/app/spec/core/basicobject/class_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/equal_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/basicobject/equal_value_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/basicobject/fixtures/common.rb +5 -0
- data/spec/framework_spec/app/spec/core/basicobject/fixtures/remove_method_missing.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/initialize_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/basicobject/instance_eval_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/basicobject/instance_exec_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/basicobject/method_missing_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/basicobject/new_spec.rb +7 -5
- data/spec/framework_spec/app/spec/core/basicobject/not_equal_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/basicobject/not_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/basicobject/singleton_method_added_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/basicobject/singleton_method_removed_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/basicobject/singleton_method_undefined_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/basicobject/superclass_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/bignum/abs_spec.rb +4 -5
- data/spec/framework_spec/app/spec/core/bignum/bit_and_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/bignum/bit_or_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/bignum/bit_xor_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/bignum/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/bignum/coerce_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/comparison_spec.rb +143 -20
- data/spec/framework_spec/app/spec/core/bignum/complement_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/div_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/divide_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/divmod_spec.rb +11 -6
- data/spec/framework_spec/app/spec/core/bignum/element_reference_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/bignum/eql_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/equal_value_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/bignum/even_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/bignum/exponent_spec.rb +16 -2
- data/spec/framework_spec/app/spec/core/bignum/fdiv_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/bignum/gt_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/bignum/gte_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/left_shift_spec.rb +64 -40
- data/spec/framework_spec/app/spec/core/bignum/lt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/bignum/lte_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/magnitude_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/bignum/minus_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/bignum/modulo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/multiply_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/odd_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/bignum/plus_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/bignum/quo_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/remainder_spec.rb +19 -8
- data/spec/framework_spec/app/spec/core/bignum/right_shift_spec.rb +93 -34
- data/spec/framework_spec/app/spec/core/bignum/shared/abs.rb +6 -0
- data/spec/framework_spec/app/spec/core/bignum/shared/divide.rb +2 -2
- data/spec/framework_spec/app/spec/core/bignum/shared/modulo.rb +13 -4
- data/spec/framework_spec/app/spec/core/bignum/size_spec.rb +15 -1
- data/spec/framework_spec/app/spec/core/bignum/to_f_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/bignum/to_s_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/bignum/uminus_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/binding/clone_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/binding/dup_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/binding/eval_spec.rb +19 -25
- data/spec/framework_spec/app/spec/core/binding/fixtures/classes.rb +1 -1
- data/spec/framework_spec/app/spec/core/builtin_constants/builtin_constants_spec.rb +57 -0
- data/spec/framework_spec/app/spec/core/class/allocate_spec.rb +11 -5
- data/spec/framework_spec/app/spec/core/class/dup_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/class/fixtures/classes.rb +5 -5
- data/spec/framework_spec/app/spec/core/class/inherited_spec.rb +22 -22
- data/spec/framework_spec/app/spec/core/class/initialize_copy_spec.rb +22 -1
- data/spec/framework_spec/app/spec/core/class/initialize_spec.rb +37 -6
- data/spec/framework_spec/app/spec/core/class/new_spec.rb +11 -2
- data/spec/framework_spec/app/spec/core/class/superclass_spec.rb +37 -8
- data/spec/framework_spec/app/spec/core/comparable/between_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/comparable/equal_value_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/comparable/fixtures/classes.rb +3 -3
- data/spec/framework_spec/app/spec/core/comparable/gt_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/comparable/gte_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/comparable/lt_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/comparable/lte_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/complex/Complex_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/complex/abs2_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/abs_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/angle_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/arg_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/coerce_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/conj_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/conjugate_spec.rb +10 -0
- data/spec/framework_spec/app/spec/core/complex/denominator_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/complex/divide_spec.rb +24 -0
- data/spec/framework_spec/app/spec/core/complex/eql_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/equal_value_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/complex/exponent_spec.rb +24 -0
- data/spec/framework_spec/app/spec/core/complex/fdiv_spec.rb +131 -0
- data/spec/framework_spec/app/spec/core/complex/hash_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/imag_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/imaginary_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/integer_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/complex/magnitude_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/complex/marshal_dump_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/marshal_load_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/minus_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/complex/multiply_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/complex/numerator_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/phase_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/plus_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/complex/polar_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/complex/quo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/rationalize_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/complex/real_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/complex/rect_spec.rb +11 -0
- data/spec/framework_spec/app/spec/core/complex/rectangular_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/complex/to_f_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/to_i_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/to_r_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/complex/to_s_spec.rb +12 -0
- data/spec/framework_spec/app/spec/core/complex/uminus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/continuation/call_spec.rb +8 -1
- data/spec/framework_spec/app/spec/core/continuation/element_reference_spec.rb +8 -1
- data/spec/framework_spec/app/spec/core/continuation/new_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/dir/chdir_spec.rb +64 -17
- data/spec/framework_spec/app/spec/core/dir/chroot_spec.rb +50 -26
- data/spec/framework_spec/app/spec/core/dir/close_spec.rb +32 -16
- data/spec/framework_spec/app/spec/core/dir/delete_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/dir_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/dir/each_spec.rb +24 -8
- data/spec/framework_spec/app/spec/core/dir/element_reference_spec.rb +19 -3
- data/spec/framework_spec/app/spec/core/dir/entries_spec.rb +19 -3
- data/spec/framework_spec/app/spec/core/dir/exist_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/dir/exists_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/dir/fixtures/common.rb +96 -73
- data/spec/framework_spec/app/spec/core/dir/foreach_spec.rb +20 -4
- data/spec/framework_spec/app/spec/core/dir/getwd_spec.rb +12 -4
- data/spec/framework_spec/app/spec/core/dir/glob_spec.rb +60 -8
- data/spec/framework_spec/app/spec/core/dir/home_spec.rb +15 -6
- data/spec/framework_spec/app/spec/core/dir/initialize_spec.rb +29 -2
- data/spec/framework_spec/app/spec/core/dir/inspect_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/dir/mkdir_spec.rb +56 -21
- data/spec/framework_spec/app/spec/core/dir/open_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/path_spec.rb +8 -24
- data/spec/framework_spec/app/spec/core/dir/pos_spec.rb +28 -4
- data/spec/framework_spec/app/spec/core/dir/pwd_spec.rb +44 -20
- data/spec/framework_spec/app/spec/core/dir/read_spec.rb +11 -5
- data/spec/framework_spec/app/spec/core/dir/rewind_spec.rb +13 -7
- data/spec/framework_spec/app/spec/core/dir/rmdir_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/seek_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/dir/shared/chroot.rb +43 -0
- data/spec/framework_spec/app/spec/core/dir/shared/delete.rb +27 -8
- data/spec/framework_spec/app/spec/core/dir/shared/exists.rb +53 -0
- data/spec/framework_spec/app/spec/core/dir/shared/glob.rb +61 -8
- data/spec/framework_spec/app/spec/core/dir/shared/open.rb +18 -2
- data/spec/framework_spec/app/spec/core/dir/shared/path.rb +29 -0
- data/spec/framework_spec/app/spec/core/dir/shared/pos.rb +1 -1
- data/spec/framework_spec/app/spec/core/dir/shared/pwd.rb +13 -13
- data/spec/framework_spec/app/spec/core/dir/tell_spec.rb +12 -6
- data/spec/framework_spec/app/spec/core/dir/to_path.rb +17 -0
- data/spec/framework_spec/app/spec/core/dir/to_path_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/dir/unlink_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/encoding/_dump_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/_load_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/aliases_spec.rb +45 -0
- data/spec/framework_spec/app/spec/core/encoding/ascii_compatible_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/encoding/compatible_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/asciicompat_encoding_spec.rb +48 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/constants_spec.rb +133 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/convert_spec.rb +46 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/convpath_spec.rb +65 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/destination_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/finish_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/insert_output_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/last_error_spec.rb +84 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/primitive_convert_spec.rb +137 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/primitive_errinfo_spec.rb +71 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/putback_spec.rb +49 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/replacement_spec.rb +63 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/search_convpath_spec.rb +73 -0
- data/spec/framework_spec/app/spec/core/encoding/converter/source_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/encoding/default_external_spec.rb +57 -0
- data/spec/framework_spec/app/spec/core/encoding/default_internal_spec.rb +83 -0
- data/spec/framework_spec/app/spec/core/encoding/dummy_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/encoding/find_spec.rb +82 -0
- data/spec/framework_spec/app/spec/core/encoding/fixtures/classes.rb +48 -0
- data/spec/framework_spec/app/spec/core/encoding/inspect_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/destination_encoding_name_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/destination_encoding_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/error_bytes_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/incomplete_input_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/readagain_bytes_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/source_encoding_name_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/encoding/invalid_byte_sequence_error/source_encoding_spec.rb +35 -0
- data/spec/framework_spec/app/spec/core/encoding/list_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/encoding/locale_charmap_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/encoding/name_list_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/encoding/name_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/names_spec.rb +37 -0
- data/spec/framework_spec/app/spec/core/encoding/replicate_spec.rb +34 -0
- data/spec/framework_spec/app/spec/core/encoding/shared/name.rb +15 -0
- data/spec/framework_spec/app/spec/core/encoding/to_s_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/destination_encoding_name_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/destination_encoding_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/error_char_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/source_encoding_name_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/encoding/undefined_conversion_error/source_encoding_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/enumerable/all_spec.rb +2 -15
- data/spec/framework_spec/app/spec/core/enumerable/any_spec.rb +2 -7
- data/spec/framework_spec/app/spec/core/enumerable/chunk_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/enumerable/collect_concat_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerable/collect_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/count_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/cycle_spec.rb +20 -6
- data/spec/framework_spec/app/spec/core/enumerable/detect_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/drop_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/enumerable/drop_while_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/each_cons_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/enumerable/each_entry_spec.rb +40 -0
- data/spec/framework_spec/app/spec/core/enumerable/each_slice_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/enumerable/each_with_index_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/enumerable/each_with_object_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/enumerable/entries_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/find_all_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/{find_index.rb → find_index_spec.rb} +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/find_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/first_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/enumerable/fixtures/classes.rb +67 -16
- data/spec/framework_spec/app/spec/core/enumerable/flat_map_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerable/grep_spec.rb +12 -7
- data/spec/framework_spec/app/spec/core/enumerable/group_by_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/include_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/inject_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/map_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/max_by_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/max_spec.rb +27 -12
- data/spec/framework_spec/app/spec/core/enumerable/member_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/min_by_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/min_spec.rb +27 -11
- data/spec/framework_spec/app/spec/core/enumerable/minmax_by_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/minmax_spec.rb +26 -10
- data/spec/framework_spec/app/spec/core/enumerable/none_spec.rb +42 -0
- data/spec/framework_spec/app/spec/core/enumerable/one_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/enumerable/partition_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/reduce_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/reject_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/reverse_each_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/select_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/enumerable/shared/collect.rb +13 -5
- data/spec/framework_spec/app/spec/core/enumerable/shared/collect_concat.rb +27 -0
- data/spec/framework_spec/app/spec/core/enumerable/shared/entries.rb +5 -1
- data/spec/framework_spec/app/spec/core/enumerable/shared/find.rb +24 -11
- data/spec/framework_spec/app/spec/core/enumerable/shared/find_all.rb +9 -3
- data/spec/framework_spec/app/spec/core/enumerable/shared/include.rb +14 -3
- data/spec/framework_spec/app/spec/core/enumerable/shared/inject.rb +8 -8
- data/spec/framework_spec/app/spec/core/enumerable/shared/take.rb +5 -3
- data/spec/framework_spec/app/spec/core/enumerable/slice_before_spec.rb +77 -0
- data/spec/framework_spec/app/spec/core/enumerable/sort_by_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/enumerable/sort_spec.rb +22 -9
- data/spec/framework_spec/app/spec/core/enumerable/take_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/take_while_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/enumerable/to_a_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/enumerable/zip_spec.rb +18 -7
- data/spec/framework_spec/app/spec/core/enumerator/each_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/each_with_index_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/enumerator/each_with_object_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/enumerator/enum_for_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerator/feed_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/generator/each_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/new_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/enumerator/next_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerator/next_values_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/peek_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/enumerator/peek_values_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/enumerator/rewind_spec.rb +27 -0
- data/spec/framework_spec/app/spec/core/enumerator/to_enum_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/enumerator/with_index_spec.rb +68 -0
- data/spec/framework_spec/app/spec/core/enumerator/with_object_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/enumerator/yielder/append_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/enumerator/yielder/yield_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/env/clear_spec.rb +19 -13
- data/spec/framework_spec/app/spec/core/env/delete_if_spec.rb +26 -28
- data/spec/framework_spec/app/spec/core/env/delete_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/each_key_spec.rb +39 -33
- data/spec/framework_spec/app/spec/core/env/each_pair_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/each_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/each_value_spec.rb +39 -33
- data/spec/framework_spec/app/spec/core/env/element_reference_spec.rb +25 -2
- data/spec/framework_spec/app/spec/core/env/element_set_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/empty_spec.rb +23 -24
- data/spec/framework_spec/app/spec/core/env/fetch_spec.rb +6 -1
- data/spec/framework_spec/app/spec/core/env/has_key_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/has_value_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/include_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/index_spec.rb +6 -1
- data/spec/framework_spec/app/spec/core/env/indexes_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/indices_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/inspect_spec.rb +11 -12
- data/spec/framework_spec/app/spec/core/env/invert_spec.rb +12 -13
- data/spec/framework_spec/app/spec/core/env/key_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/env/keys_spec.rb +16 -9
- data/spec/framework_spec/app/spec/core/env/length_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/member_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/rehash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/reject_spec.rb +88 -89
- data/spec/framework_spec/app/spec/core/env/replace_spec.rb +15 -16
- data/spec/framework_spec/app/spec/core/env/select_spec.rb +32 -23
- data/spec/framework_spec/app/spec/core/env/shared/each.rb +10 -1
- data/spec/framework_spec/app/spec/core/env/shared/key.rb +15 -0
- data/spec/framework_spec/app/spec/core/env/shared/store.rb +18 -12
- data/spec/framework_spec/app/spec/core/env/shared/value.rb +7 -0
- data/spec/framework_spec/app/spec/core/env/shift_spec.rb +27 -28
- data/spec/framework_spec/app/spec/core/env/size_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/store_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/env/to_a_spec.rb +21 -13
- data/spec/framework_spec/app/spec/core/env/to_hash_spec.rb +12 -13
- data/spec/framework_spec/app/spec/core/env/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/env/update_spec.rb +1 -2
- data/spec/framework_spec/app/spec/core/env/value_spec.rb +6 -7
- data/spec/framework_spec/app/spec/core/env/values_at_spec.rb +7 -1
- data/spec/framework_spec/app/spec/core/env/values_spec.rb +23 -16
- data/spec/framework_spec/app/spec/core/exception/args_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/arguments_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/backtrace_spec.rb +51 -1
- data/spec/framework_spec/app/spec/core/exception/case_compare_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/exception/destination_encoding_name_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/destination_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/equal_value_spec.rb +84 -0
- data/spec/framework_spec/app/spec/core/exception/errno_spec.rb +16 -1
- data/spec/framework_spec/app/spec/core/exception/error_bytes_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/error_char_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/exception_spec.rb +69 -5
- data/spec/framework_spec/app/spec/core/exception/exit_value_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/exception/fixtures/common.rb +33 -1
- data/spec/framework_spec/app/spec/core/exception/incomplete_input_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/exception/io_error_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/message_spec.rb +14 -4
- data/spec/framework_spec/app/spec/core/exception/name_error_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/exception/name_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/exception/new_spec.rb +3 -2
- data/spec/framework_spec/app/spec/core/exception/no_method_error_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/exception/range_error_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/readagain_bytes_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/reason_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/result_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/exception/script_error_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/exception/set_backtrace_spec.rb +10 -1
- data/spec/framework_spec/app/spec/core/exception/shared/new.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/shared/to_s.rb +3 -3
- data/spec/framework_spec/app/spec/core/exception/signm_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/signo_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/source_encoding_name_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/source_encoding_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/exception/standard_error_spec.rb +56 -55
- data/spec/framework_spec/app/spec/core/exception/status_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/success_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/exception/system_call_error_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/exception/to_s_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/exception/to_str_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/false/and_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/inspect_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/or_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/false/xor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fiber/new_spec.rb +48 -49
- data/spec/framework_spec/app/spec/core/fiber/resume_spec.rb +39 -23
- data/spec/framework_spec/app/spec/core/fiber/yield_spec.rb +34 -36
- data/spec/framework_spec/app/spec/core/file/absolute_path_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/file/atime_spec.rb +12 -5
- data/spec/framework_spec/app/spec/core/file/basename_spec.rb +25 -26
- data/spec/framework_spec/app/spec/core/file/blockdev_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/chardev_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/chmod_spec.rb +14 -10
- data/spec/framework_spec/app/spec/core/file/chown_spec.rb +22 -4
- data/spec/framework_spec/app/spec/core/file/constants/constants_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/file/constants_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/file/ctime_spec.rb +13 -6
- data/spec/framework_spec/app/spec/core/file/delete_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/directory_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/file/dirname_spec.rb +12 -2
- data/spec/framework_spec/app/spec/core/file/executable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/executable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/exist_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/exists_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/expand_path_spec.rb +133 -31
- data/spec/framework_spec/app/spec/core/file/extname_spec.rb +7 -1
- data/spec/framework_spec/app/spec/core/file/file_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/fixtures/common.rb +22 -0
- data/spec/framework_spec/app/spec/core/file/fixtures/file_types.rb +3 -9
- data/spec/framework_spec/app/spec/core/file/flock_spec.rb +56 -18
- data/spec/framework_spec/app/spec/core/file/fnmatch_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/ftype_spec.rb +43 -45
- data/spec/framework_spec/app/spec/core/file/grpowned_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/identical_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/initialize_spec.rb +25 -1
- data/spec/framework_spec/app/spec/core/file/inspect_spec.rb +14 -7
- data/spec/framework_spec/app/spec/core/file/join_spec.rb +37 -10
- data/spec/framework_spec/app/spec/core/file/lchmod_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/file/lchown_spec.rb +12 -6
- data/spec/framework_spec/app/spec/core/file/link_spec.rb +7 -9
- data/spec/framework_spec/app/spec/core/file/lstat_spec.rb +16 -11
- data/spec/framework_spec/app/spec/core/file/mtime_spec.rb +7 -6
- data/spec/framework_spec/app/spec/core/file/new_spec.rb +60 -44
- data/spec/framework_spec/app/spec/core/file/open_spec.rb +104 -120
- data/spec/framework_spec/app/spec/core/file/owned_spec.rb +26 -3
- data/spec/framework_spec/app/spec/core/file/path_spec.rb +11 -10
- data/spec/framework_spec/app/spec/core/file/pipe_spec.rb +25 -3
- data/spec/framework_spec/app/spec/core/file/read_spec.rb +6 -0
- data/spec/framework_spec/app/spec/core/file/readable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/readable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/readlink_spec.rb +17 -13
- data/spec/framework_spec/app/spec/core/file/realdirpath_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/file/realpath_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/file/rename_spec.rb +24 -27
- data/spec/framework_spec/app/spec/core/file/reopen_spec.rb +27 -0
- data/spec/framework_spec/app/spec/core/file/setgid_spec.rb +21 -21
- data/spec/framework_spec/app/spec/core/file/setuid_spec.rb +21 -21
- data/spec/framework_spec/app/spec/core/file/shared/fnmatch.rb +11 -5
- data/spec/framework_spec/app/spec/core/file/shared/open.rb +9 -0
- data/spec/framework_spec/app/spec/core/file/shared/read.rb +21 -0
- data/spec/framework_spec/app/spec/core/file/shared/stat.rb +31 -17
- data/spec/framework_spec/app/spec/core/file/shared/unlink.rb +8 -4
- data/spec/framework_spec/app/spec/core/file/size_spec.rb +111 -22
- data/spec/framework_spec/app/spec/core/file/socket_spec.rb +24 -3
- data/spec/framework_spec/app/spec/core/file/split_spec.rb +12 -7
- data/spec/framework_spec/app/spec/core/file/stat/atime_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/file/stat/blksize_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/blockdev_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/blocks_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/chardev_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/file/stat/comparison_spec.rb +14 -9
- data/spec/framework_spec/app/spec/core/file/stat/ctime_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/file/stat/dev_major_spec.rb +12 -3
- data/spec/framework_spec/app/spec/core/file/stat/dev_minor_spec.rb +13 -3
- data/spec/framework_spec/app/spec/core/file/stat/dev_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/file/stat/directory_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/executable_real_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/executable_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/file_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/ftype_spec.rb +14 -17
- data/spec/framework_spec/app/spec/core/file/stat/gid_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/file/stat/grpowned_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/ino_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/inspect_spec.rb +8 -10
- data/spec/framework_spec/app/spec/core/file/stat/mode_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/file/stat/mtime_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/file/stat/new_spec.rb +11 -4
- data/spec/framework_spec/app/spec/core/file/stat/nlink_spec.rb +5 -6
- data/spec/framework_spec/app/spec/core/file/stat/owned_spec.rb +24 -4
- data/spec/framework_spec/app/spec/core/file/stat/pipe_spec.rb +25 -4
- data/spec/framework_spec/app/spec/core/file/stat/rdev_major_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/file/stat/rdev_minor_spec.rb +13 -3
- data/spec/framework_spec/app/spec/core/file/stat/rdev_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/file/stat/readable_real_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/readable_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/setgid_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/setuid_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/size_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/file/stat/socket_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/sticky_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/symlink_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/uid_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/file/stat/world_readable_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/file/stat/world_writable_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/file/stat/writable_real_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/writable_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat/zero_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/file/stat_spec.rb +23 -6
- data/spec/framework_spec/app/spec/core/file/sticky_spec.rb +49 -3
- data/spec/framework_spec/app/spec/core/file/symlink_spec.rb +18 -11
- data/spec/framework_spec/app/spec/core/file/to_path_spec.rb +48 -0
- data/spec/framework_spec/app/spec/core/file/truncate_spec.rb +34 -39
- data/spec/framework_spec/app/spec/core/file/umask_spec.rb +20 -21
- data/spec/framework_spec/app/spec/core/file/unlink_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/utime_spec.rb +20 -5
- data/spec/framework_spec/app/spec/core/file/world_readable_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/file/world_writable_spec.rb +16 -0
- data/spec/framework_spec/app/spec/core/file/writable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/writable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/file/zero_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/blockdev_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/chardev_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/filetest/directory_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/executable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/executable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/exist_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/exists_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/file_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/grpowned_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/identical_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/owned_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/pipe_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/readable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/readable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/setgid_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/setuid_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/size_spec.rb +31 -4
- data/spec/framework_spec/app/spec/core/filetest/socket_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/filetest/sticky_spec.rb +3 -2
- data/spec/framework_spec/app/spec/core/filetest/symlink_spec.rb +5 -2
- data/spec/framework_spec/app/spec/core/filetest/world_readable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/filetest/world_writable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/filetest/writable_real_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/writable_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/filetest/zero_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/abs_spec.rb +4 -8
- data/spec/framework_spec/app/spec/core/fixnum/bit_and_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/fixnum/bit_or_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/fixnum/bit_xor_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/fixnum/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/coerce_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/comparison_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/complement_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/div_spec.rb +17 -7
- data/spec/framework_spec/app/spec/core/fixnum/divide_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/fixnum/divmod_spec.rb +16 -6
- data/spec/framework_spec/app/spec/core/fixnum/element_reference_spec.rb +45 -19
- data/spec/framework_spec/app/spec/core/fixnum/equal_value_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/fixnum/even_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/exponent_spec.rb +59 -7
- data/spec/framework_spec/app/spec/core/fixnum/fdiv_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/gt_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/fixnum/gte_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/id2name_spec.rb +15 -13
- data/spec/framework_spec/app/spec/core/fixnum/induced_from_spec.rb +36 -35
- data/spec/framework_spec/app/spec/core/fixnum/left_shift_spec.rb +72 -42
- data/spec/framework_spec/app/spec/core/fixnum/lt_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/fixnum/lte_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/magnitude_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/fixnum/minus_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/modulo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/multiply_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/fixnum/odd_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/plus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/quo_spec.rb +16 -6
- data/spec/framework_spec/app/spec/core/fixnum/right_shift_spec.rb +84 -40
- data/spec/framework_spec/app/spec/core/fixnum/shared/abs.rb +9 -0
- data/spec/framework_spec/app/spec/core/fixnum/shared/modulo.rb +17 -7
- data/spec/framework_spec/app/spec/core/fixnum/size_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/succ_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/fixnum/to_f_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/fixnum/to_sym_spec.rb +16 -14
- data/spec/framework_spec/app/spec/core/fixnum/uminus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/fixnum/zero_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/abs_spec.rb +2 -6
- data/spec/framework_spec/app/spec/core/float/angle_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/arg_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/ceil_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/coerce_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/comparison_spec.rb +52 -1
- data/spec/framework_spec/app/spec/core/float/constants_spec.rb +25 -17
- data/spec/framework_spec/app/spec/core/float/denominator_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/float/divide_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/float/divmod_spec.rb +26 -1
- data/spec/framework_spec/app/spec/core/float/eql_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/equal_value_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/exponent_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/float/fdiv_spec.rb +68 -0
- data/spec/framework_spec/app/spec/core/float/finite_spec.rb +3 -1
- data/spec/framework_spec/app/spec/core/float/fixtures/coerce.rb +15 -0
- data/spec/framework_spec/app/spec/core/float/floor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/gt_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/gte_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/induced_from_spec.rb +38 -37
- data/spec/framework_spec/app/spec/core/float/infinite_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/lt_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/lte_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/magnitude_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/minus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/modulo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/multiply_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/float/nan_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/numerator_spec.rb +47 -0
- data/spec/framework_spec/app/spec/core/float/phase_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/plus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/quo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/rationalize_spec.rb +40 -0
- data/spec/framework_spec/app/spec/core/float/round_spec.rb +32 -6
- data/spec/framework_spec/app/spec/core/float/shared/abs.rb +9 -0
- data/spec/framework_spec/app/spec/core/float/shared/modulo.rb +14 -3
- data/spec/framework_spec/app/spec/core/float/to_f_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/to_int_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/float/to_r_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/float/to_s_spec.rb +93 -18
- data/spec/framework_spec/app/spec/core/float/truncate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/float/uminus_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/float/uplus_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/float/zero_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/gc/count_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/disable_spec.rb +17 -1
- data/spec/framework_spec/app/spec/core/gc/enable_spec.rb +12 -1
- data/spec/framework_spec/app/spec/core/gc/garbage_collect_spec.rb +15 -1
- data/spec/framework_spec/app/spec/core/gc/profiler/clear_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/disable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/enable_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/enabled_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/report_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/result_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/profiler/total_time_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/gc/start_spec.rb +8 -1
- data/spec/framework_spec/app/spec/core/gc/stress_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/hash/allocate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/assoc_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/hash/clear_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/clone_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/hash/compare_by_identity_spec.rb +109 -0
- data/spec/framework_spec/app/spec/core/hash/constructor_spec.rb +8 -4
- data/spec/framework_spec/app/spec/core/hash/default_proc_spec.rb +24 -4
- data/spec/framework_spec/app/spec/core/hash/default_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/delete_if_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/delete_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/each_key_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/each_pair_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/hash/each_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/each_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/element_reference_spec.rb +111 -115
- data/spec/framework_spec/app/spec/core/hash/element_set_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/empty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/eql_spec.rb +18 -19
- data/spec/framework_spec/app/spec/core/hash/equal_value_spec.rb +18 -14
- data/spec/framework_spec/app/spec/core/hash/fetch_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/fixtures/classes.rb +1 -1
- data/spec/framework_spec/app/spec/core/hash/flatten_spec.rb +64 -0
- data/spec/framework_spec/app/spec/core/hash/has_key_spec.rb +8 -9
- data/spec/framework_spec/app/spec/core/hash/has_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/hash_spec.rb +20 -1
- data/spec/framework_spec/app/spec/core/hash/include_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/index_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/indexes_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/indices_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/initialize_copy_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/initialize_spec.rb +8 -3
- data/spec/framework_spec/app/spec/core/hash/inspect_spec.rb +3 -41
- data/spec/framework_spec/app/spec/core/hash/invert_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/keep_if_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/hash/key_spec.rb +14 -15
- data/spec/framework_spec/app/spec/core/hash/keys_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/length_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/member_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/merge_spec.rb +10 -17
- data/spec/framework_spec/app/spec/core/hash/new_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/rassoc_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/hash/rehash_spec.rb +51 -60
- data/spec/framework_spec/app/spec/core/hash/reject_spec.rb +18 -12
- data/spec/framework_spec/app/spec/core/hash/replace_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/select_spec.rb +38 -5
- data/spec/framework_spec/app/spec/core/hash/shared/each.rb +46 -6
- data/spec/framework_spec/app/spec/core/hash/shared/eql.rb +14 -1
- data/spec/framework_spec/app/spec/core/hash/shared/index.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/shared/iteration.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/shared/key.rb +5 -3
- data/spec/framework_spec/app/spec/core/hash/shared/replace.rb +22 -11
- data/spec/framework_spec/app/spec/core/hash/shared/store.rb +14 -1
- data/spec/framework_spec/app/spec/core/hash/shared/to_s.rb +22 -21
- data/spec/framework_spec/app/spec/core/hash/shared/update.rb +27 -8
- data/spec/framework_spec/app/spec/core/hash/shift_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/sort_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/store_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/hash/to_a_spec.rb +16 -3
- data/spec/framework_spec/app/spec/core/hash/to_hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/hash/to_s_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/hash/try_convert_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/hash/update_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/hash/values_at_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/hash/values_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/integer/ceil_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/chr_spec.rb +141 -18
- data/spec/framework_spec/app/spec/core/integer/denominator_spec.rb +22 -0
- data/spec/framework_spec/app/spec/core/integer/downto_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/integer/even_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/floor_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/gcd_spec.rb +60 -0
- data/spec/framework_spec/app/spec/core/integer/gcdlcm_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/integer/induced_from_spec.rb +43 -42
- data/spec/framework_spec/app/spec/core/integer/integer_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/lcm_spec.rb +60 -0
- data/spec/framework_spec/app/spec/core/integer/next_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/numerator_spec.rb +20 -0
- data/spec/framework_spec/app/spec/core/integer/odd_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/integer/ord_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/integer/pred_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/integer/rationalize_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/integer/round_spec.rb +35 -2
- data/spec/framework_spec/app/spec/core/integer/shared/next.rb +1 -1
- data/spec/framework_spec/app/spec/core/integer/succ_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/times_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/integer/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/to_int_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/to_r_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/integer/truncate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/integer/upto_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/io/binmode_spec.rb +21 -5
- data/spec/framework_spec/app/spec/core/io/binread_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/bytes_spec.rb +27 -16
- data/spec/framework_spec/app/spec/core/io/chars_spec.rb +35 -19
- data/spec/framework_spec/app/spec/core/io/close_on_exec_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/io/close_read_spec.rb +29 -29
- data/spec/framework_spec/app/spec/core/io/close_spec.rb +15 -19
- data/spec/framework_spec/app/spec/core/io/close_write_spec.rb +13 -14
- data/spec/framework_spec/app/spec/core/io/closed_spec.rb +15 -7
- data/spec/framework_spec/app/spec/core/io/codepoints_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/io/constants_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/io/copy_stream_spec.rb +50 -0
- data/spec/framework_spec/app/spec/core/io/dup_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/each_byte_spec.rb +32 -26
- data/spec/framework_spec/app/spec/core/io/each_char_spec.rb +35 -22
- data/spec/framework_spec/app/spec/core/io/each_codepoint_spec.rb +34 -0
- data/spec/framework_spec/app/spec/core/io/each_line_spec.rb +7 -5
- data/spec/framework_spec/app/spec/core/io/each_spec.rb +8 -6
- data/spec/framework_spec/app/spec/core/io/eof_spec.rb +59 -45
- data/spec/framework_spec/app/spec/core/io/external_encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/fcntl_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/fdatasync_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/fileno_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/fixtures/classes.rb +57 -15
- data/spec/framework_spec/app/spec/core/io/fixtures/empty.txt +0 -0
- data/spec/framework_spec/app/spec/core/io/fixtures/{gets.txt → lines.txt} +0 -0
- data/spec/framework_spec/app/spec/core/io/fixtures/reopen_stdout.rb +3 -0
- data/spec/framework_spec/app/spec/core/io/flush_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/for_fd_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/io/foreach_spec.rb +132 -90
- data/spec/framework_spec/app/spec/core/io/fsync_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/io/getbyte_spec.rb +27 -21
- data/spec/framework_spec/app/spec/core/io/getc_spec.rb +30 -24
- data/spec/framework_spec/app/spec/core/io/gets_spec.rb +144 -127
- data/spec/framework_spec/app/spec/core/io/initialize_copy_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/io/initialize_spec.rb +33 -16
- data/spec/framework_spec/app/spec/core/io/inspect_spec.rb +4 -15
- data/spec/framework_spec/app/spec/core/io/internal_encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/io_spec.rb +1 -5
- data/spec/framework_spec/app/spec/core/io/ioctl_spec.rb +42 -5
- data/spec/framework_spec/app/spec/core/io/isatty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/io/lineno_spec.rb +65 -52
- data/spec/framework_spec/app/spec/core/io/lines_spec.rb +28 -22
- data/spec/framework_spec/app/spec/core/io/new_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/io/open_spec.rb +52 -49
- data/spec/framework_spec/app/spec/core/io/output_spec.rb +22 -14
- data/spec/framework_spec/app/spec/core/io/pid_spec.rb +20 -11
- data/spec/framework_spec/app/spec/core/io/pipe_spec.rb +10 -1
- data/spec/framework_spec/app/spec/core/io/popen_spec.rb +107 -37
- data/spec/framework_spec/app/spec/core/io/pos_spec.rb +5 -44
- data/spec/framework_spec/app/spec/core/io/print_spec.rb +56 -59
- data/spec/framework_spec/app/spec/core/io/printf_spec.rb +25 -19
- data/spec/framework_spec/app/spec/core/io/putc_spec.rb +5 -43
- data/spec/framework_spec/app/spec/core/io/puts_spec.rb +28 -16
- data/spec/framework_spec/app/spec/core/io/read_nonblock_spec.rb +54 -3
- data/spec/framework_spec/app/spec/core/io/read_spec.rb +127 -50
- data/spec/framework_spec/app/spec/core/io/readbyte_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/io/readchar_spec.rb +31 -31
- data/spec/framework_spec/app/spec/core/io/readline_spec.rb +29 -25
- data/spec/framework_spec/app/spec/core/io/readlines_spec.rb +174 -146
- data/spec/framework_spec/app/spec/core/io/readpartial_spec.rb +16 -4
- data/spec/framework_spec/app/spec/core/io/reopen_spec.rb +226 -82
- data/spec/framework_spec/app/spec/core/io/rewind_spec.rb +8 -9
- data/spec/framework_spec/app/spec/core/io/seek_spec.rb +21 -29
- data/spec/framework_spec/app/spec/core/io/select_spec.rb +34 -7
- data/spec/framework_spec/app/spec/core/io/set_encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/shared/codepoints.rb +46 -0
- data/spec/framework_spec/app/spec/core/io/shared/each.rb +97 -112
- data/spec/framework_spec/app/spec/core/io/shared/gets_ascii.rb +27 -0
- data/spec/framework_spec/app/spec/core/io/shared/new.rb +74 -99
- data/spec/framework_spec/app/spec/core/io/shared/pos.rb +43 -4
- data/spec/framework_spec/app/spec/core/io/shared/tty.rb +10 -7
- data/spec/framework_spec/app/spec/core/io/shared/write.rb +4 -4
- data/spec/framework_spec/app/spec/core/io/stat_spec.rb +20 -7
- data/spec/framework_spec/app/spec/core/io/sync_spec.rb +12 -10
- data/spec/framework_spec/app/spec/core/io/sysopen_spec.rb +32 -14
- data/spec/framework_spec/app/spec/core/io/sysread_spec.rb +12 -10
- data/spec/framework_spec/app/spec/core/io/sysseek_spec.rb +17 -42
- data/spec/framework_spec/app/spec/core/io/syswrite_spec.rb +10 -9
- data/spec/framework_spec/app/spec/core/io/tell_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/io/to_i_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/io/to_io_spec.rb +15 -10
- data/spec/framework_spec/app/spec/core/io/try_convert_spec.rb +47 -0
- data/spec/framework_spec/app/spec/core/io/tty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/io/ungetbyte_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/io/ungetc_spec.rb +55 -48
- data/spec/framework_spec/app/spec/core/io/write_nonblock_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/io/write_spec.rb +17 -12
- data/spec/framework_spec/app/spec/core/kernel/Array_spec.rb +76 -31
- data/spec/framework_spec/app/spec/core/kernel/Complex_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/Float_spec.rb +18 -13
- data/spec/framework_spec/app/spec/core/kernel/Integer_spec.rb +243 -7
- data/spec/framework_spec/app/spec/core/kernel/Rational_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/String_spec.rb +65 -33
- data/spec/framework_spec/app/spec/core/kernel/__callee___spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/kernel/__id___spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/__method___spec.rb +41 -0
- data/spec/framework_spec/app/spec/core/kernel/__send___spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/abort_spec.rb +6 -3
- data/spec/framework_spec/app/spec/core/kernel/at_exit_spec.rb +16 -11
- data/spec/framework_spec/app/spec/core/kernel/autoload_spec.rb +127 -114
- data/spec/framework_spec/app/spec/core/kernel/backtick_spec.rb +24 -24
- data/spec/framework_spec/app/spec/core/kernel/binding_spec.rb +45 -23
- data/spec/framework_spec/app/spec/core/kernel/block_given_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/callcc_spec.rb +9 -65
- data/spec/framework_spec/app/spec/core/kernel/caller_spec.rb +162 -91
- data/spec/framework_spec/app/spec/core/kernel/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/catch_spec.rb +70 -13
- data/spec/framework_spec/app/spec/core/kernel/chomp_spec.rb +19 -15
- data/spec/framework_spec/app/spec/core/kernel/chop_spec.rb +19 -15
- data/spec/framework_spec/app/spec/core/kernel/class_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/clone_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/kernel/comparison_spec.rb +33 -0
- data/spec/framework_spec/app/spec/core/kernel/const_lookup_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/{define_singleton_method.rb → define_singleton_method_spec.rb} +31 -9
- data/spec/framework_spec/app/spec/core/kernel/display_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/dup_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/enum_for_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/eql_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/kernel/equal_spec.rb +32 -3
- data/spec/framework_spec/app/spec/core/kernel/equal_value_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/eval_spec.rb +285 -182
- data/spec/framework_spec/app/spec/core/kernel/exec_spec.rb +18 -5
- data/spec/framework_spec/app/spec/core/kernel/exit_spec.rb +70 -4
- data/spec/framework_spec/app/spec/core/kernel/extend_spec.rb +29 -7
- data/spec/framework_spec/app/spec/core/kernel/fail_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/fixtures/__method__.rb +25 -0
- data/spec/framework_spec/app/spec/core/kernel/fixtures/autoload_d.rb +5 -0
- data/spec/framework_spec/app/spec/core/kernel/fixtures/caller_fixture1.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/fixtures/classes.rb +173 -67
- data/spec/framework_spec/app/spec/core/kernel/fixtures/eval_locals.rb +6 -0
- data/spec/framework_spec/app/spec/core/kernel/fixtures/test.rb +80 -80
- data/spec/framework_spec/app/spec/core/kernel/fork_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/format_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/freeze_spec.rb +75 -37
- data/spec/framework_spec/app/spec/core/kernel/frozen_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/getc_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/gets_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/global_variables_spec.rb +24 -12
- data/spec/framework_spec/app/spec/core/kernel/gsub_spec.rb +76 -72
- data/spec/framework_spec/app/spec/core/kernel/hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/id_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/initialize_clone_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/initialize_dup_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/instance_eval_spec.rb +154 -113
- data/spec/framework_spec/app/spec/core/kernel/instance_of_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/instance_variable_defined_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/instance_variable_get_spec.rb +16 -2
- data/spec/framework_spec/app/spec/core/kernel/instance_variable_set_spec.rb +25 -12
- data/spec/framework_spec/app/spec/core/kernel/instance_variables_spec.rb +48 -3
- data/spec/framework_spec/app/spec/core/kernel/is_a_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/iterator_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/kind_of_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/kernel/lambda_spec.rb +68 -7
- data/spec/framework_spec/app/spec/core/kernel/load_spec.rb +22 -217
- data/spec/framework_spec/app/spec/core/kernel/local_variables_spec.rb +38 -18
- data/spec/framework_spec/app/spec/core/kernel/loop_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/match_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/method_missing_spec.rb +9 -54
- data/spec/framework_spec/app/spec/core/kernel/method_spec.rb +29 -31
- data/spec/framework_spec/app/spec/core/kernel/methods_spec.rb +93 -78
- data/spec/framework_spec/app/spec/core/kernel/nil_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/not_match_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/object_id_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/kernel/open_spec.rb +30 -32
- data/spec/framework_spec/app/spec/core/kernel/p_spec.rb +29 -29
- data/spec/framework_spec/app/spec/core/kernel/print_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/printf_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/private_methods_spec.rb +82 -14
- data/spec/framework_spec/app/spec/core/kernel/proc_spec.rb +22 -4
- data/spec/framework_spec/app/spec/core/kernel/protected_methods_spec.rb +44 -2
- data/spec/framework_spec/app/spec/core/kernel/public_method_spec.rb +37 -0
- data/spec/framework_spec/app/spec/core/kernel/public_methods_spec.rb +70 -12
- data/spec/framework_spec/app/spec/core/kernel/public_send_spec.rb +76 -0
- data/spec/framework_spec/app/spec/core/kernel/putc_spec.rb +31 -4
- data/spec/framework_spec/app/spec/core/kernel/puts_spec.rb +100 -87
- data/spec/framework_spec/app/spec/core/kernel/raise_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/rand_spec.rb +39 -13
- data/spec/framework_spec/app/spec/core/kernel/readline_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/readlines_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/remove_instance_variable_spec.rb +32 -2
- data/spec/framework_spec/app/spec/core/kernel/require_relative_spec.rb +154 -0
- data/spec/framework_spec/app/spec/core/kernel/require_spec.rb +20 -289
- data/spec/framework_spec/app/spec/core/kernel/respond_to_missing_spec.rb +88 -0
- data/spec/framework_spec/app/spec/core/kernel/respond_to_spec.rb +41 -33
- data/spec/framework_spec/app/spec/core/kernel/scan_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/select_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/send_spec.rb +31 -65
- data/spec/framework_spec/app/spec/core/kernel/set_trace_func_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/shared/__method__.rb +6 -7
- data/spec/framework_spec/app/spec/core/kernel/shared/abort.rb +26 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/lambda.rb +12 -25
- data/spec/framework_spec/app/spec/core/kernel/shared/load.rb +93 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/method.rb +59 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/object_id.rb +22 -6
- data/spec/framework_spec/app/spec/core/kernel/shared/require.rb +529 -0
- data/spec/framework_spec/app/spec/core/kernel/shared/send.rb +110 -0
- data/spec/framework_spec/app/spec/core/kernel/singleton_class_spec.rb +30 -0
- data/spec/framework_spec/app/spec/core/kernel/singleton_method_added_spec.rb +6 -5
- data/spec/framework_spec/app/spec/core/kernel/singleton_method_removed_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/kernel/singleton_method_undefined_spec.rb +4 -5
- data/spec/framework_spec/app/spec/core/kernel/singleton_methods_spec.rb +179 -58
- data/spec/framework_spec/app/spec/core/kernel/sleep_spec.rb +18 -19
- data/spec/framework_spec/app/spec/core/kernel/spawn_spec.rb +152 -0
- data/spec/framework_spec/app/spec/core/kernel/split_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/kernel/sprintf_spec.rb +351 -5
- data/spec/framework_spec/app/spec/core/kernel/srand_spec.rb +33 -6
- data/spec/framework_spec/app/spec/core/kernel/sub_spec.rb +19 -15
- data/spec/framework_spec/app/spec/core/kernel/syscall_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/system_spec.rb +90 -61
- data/spec/framework_spec/app/spec/core/kernel/taint_spec.rb +9 -4
- data/spec/framework_spec/app/spec/core/kernel/tainted_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/kernel/tap_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/kernel/test_spec.rb +36 -16
- data/spec/framework_spec/app/spec/core/kernel/throw_spec.rb +29 -24
- data/spec/framework_spec/app/spec/core/kernel/to_a_spec.rb +17 -15
- data/spec/framework_spec/app/spec/core/kernel/to_enum_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/kernel/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/trace_var_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/trap_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/trust_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/type_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untaint_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untrace_var_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untrust_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/untrusted_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/kernel/warn_spec.rb +59 -60
- data/spec/framework_spec/app/spec/core/marshal/dump_spec.rb +314 -70
- data/spec/framework_spec/app/spec/core/marshal/fixtures/marshal_data.rb +165 -0
- data/spec/framework_spec/app/spec/core/marshal/fixtures/random.dump +0 -0
- data/spec/framework_spec/app/spec/core/marshal/load_spec.rb +483 -170
- data/spec/framework_spec/app/spec/core/marshal/restore_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/matchdata/begin_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/captures_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/element_reference_spec.rb +3 -1
- data/spec/framework_spec/app/spec/core/matchdata/end_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/eql_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/matchdata/equal_value_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/matchdata/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/matchdata/initialize_copy_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/inspect_spec.rb +19 -1
- data/spec/framework_spec/app/spec/core/matchdata/length_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/names_spec.rb +3 -0
- data/spec/framework_spec/app/spec/core/matchdata/offset_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/post_match_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/pre_match_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/regexp_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/matchdata/select_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/shared/eql.rb +26 -0
- data/spec/framework_spec/app/spec/core/matchdata/size_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/string_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/to_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/matchdata/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/values_at_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/matchdata/versions/element_reference_1.9.rb +35 -0
- data/spec/framework_spec/app/spec/core/matchdata/versions/names_1.9.rb +33 -0
- data/spec/framework_spec/app/spec/core/math/acos_spec.rb +31 -31
- data/spec/framework_spec/app/spec/core/math/acosh_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/asin_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/math/asinh_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/atan2_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/atan_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/math/atanh_spec.rb +8 -64
- data/spec/framework_spec/app/spec/core/math/cbrt_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/math/constants_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/math/cos_spec.rb +13 -13
- data/spec/framework_spec/app/spec/core/math/cosh_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/erf_spec.rb +14 -14
- data/spec/framework_spec/app/spec/core/math/erfc_spec.rb +12 -12
- data/spec/framework_spec/app/spec/core/math/exp_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/fixtures/classes.rb +2 -2
- data/spec/framework_spec/app/spec/core/math/frexp_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/gamma_spec.rb +71 -0
- data/spec/framework_spec/app/spec/core/math/hypot_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/math/ldexp_spec.rb +10 -10
- data/spec/framework_spec/app/spec/core/math/lgamma_spec.rb +87 -0
- data/spec/framework_spec/app/spec/core/math/log10_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/math/log2_spec.rb +30 -3
- data/spec/framework_spec/app/spec/core/math/log_spec.rb +30 -11
- data/spec/framework_spec/app/spec/core/math/sin_spec.rb +15 -15
- data/spec/framework_spec/app/spec/core/math/sinh_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/math/sqrt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/math/tan_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/math/tanh_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/method/arity_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/method/call_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/method/clone_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/element_reference_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/method/eql_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/method/equal_value_spec.rb +3 -40
- data/spec/framework_spec/app/spec/core/method/fixtures/classes.rb +104 -13
- data/spec/framework_spec/app/spec/core/method/fixtures/classes_1.9.rb +12 -0
- data/spec/framework_spec/app/spec/core/method/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/method/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/name_spec.rb +19 -5
- data/spec/framework_spec/app/spec/core/method/owner_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/method/parameters_spec.rb +3 -0
- data/spec/framework_spec/app/spec/core/method/receiver_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/method/shared/call.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/shared/eql.rb +102 -0
- data/spec/framework_spec/app/spec/core/method/shared/to_s.rb +5 -5
- data/spec/framework_spec/app/spec/core/method/source_location_spec.rb +50 -0
- data/spec/framework_spec/app/spec/core/method/to_proc_spec.rb +20 -2
- data/spec/framework_spec/app/spec/core/method/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/method/unbind_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/method/versions/parameters_1.9.rb +189 -0
- data/spec/framework_spec/app/spec/core/module/alias_method_spec.rb +20 -8
- data/spec/framework_spec/app/spec/core/module/allocate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/ancestors_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/append_features_spec.rb +15 -4
- data/spec/framework_spec/app/spec/core/module/attr_accessor_spec.rb +16 -7
- data/spec/framework_spec/app/spec/core/module/attr_reader_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/module/attr_spec.rb +61 -63
- data/spec/framework_spec/app/spec/core/module/attr_writer_spec.rb +23 -12
- data/spec/framework_spec/app/spec/core/module/autoload_spec.rb +177 -84
- data/spec/framework_spec/app/spec/core/module/case_compare_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/class_eval_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/module/class_exec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/module/class_variable_defined_spec.rb +22 -7
- data/spec/framework_spec/app/spec/core/module/class_variable_get_spec.rb +27 -12
- data/spec/framework_spec/app/spec/core/module/class_variable_set_spec.rb +37 -15
- data/spec/framework_spec/app/spec/core/module/class_variables_spec.rb +50 -17
- data/spec/framework_spec/app/spec/core/module/comparison_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/module/const_defined_spec.rb +41 -5
- data/spec/framework_spec/app/spec/core/module/const_get_spec.rb +14 -2
- data/spec/framework_spec/app/spec/core/module/const_missing_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/module/const_set_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/constants_spec.rb +26 -2
- data/spec/framework_spec/app/spec/core/module/define_method_spec.rb +283 -15
- data/spec/framework_spec/app/spec/core/module/eql_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/equal_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/equal_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/extend_object_spec.rb +23 -28
- data/spec/framework_spec/app/spec/core/module/extended_spec.rb +18 -10
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload.rb +1 -1
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_ex1.rb +16 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_k.rb +3 -1
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_s.rb +5 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/autoload_w2.rb +1 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/classes.rb +97 -0
- data/spec/framework_spec/app/spec/core/module/fixtures/name.rb +10 -0
- data/spec/framework_spec/app/spec/core/module/freeze_spec.rb +33 -13
- data/spec/framework_spec/app/spec/core/module/gt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/module/gte_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/include_spec.rb +159 -33
- data/spec/framework_spec/app/spec/core/module/included_modules_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/included_spec.rb +12 -4
- data/spec/framework_spec/app/spec/core/module/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/module/initialize_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/instance_method_spec.rb +16 -7
- data/spec/framework_spec/app/spec/core/module/instance_methods_spec.rb +51 -17
- data/spec/framework_spec/app/spec/core/module/lt_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/module/lte_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/method_added_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/module/method_defined_spec.rb +13 -6
- data/spec/framework_spec/app/spec/core/module/method_removed_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/method_undefined_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/module_eval_spec.rb +7 -8
- data/spec/framework_spec/app/spec/core/module/module_exec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/module/module_function_spec.rb +82 -76
- data/spec/framework_spec/app/spec/core/module/name_spec.rb +24 -6
- data/spec/framework_spec/app/spec/core/module/nesting_spec.rb +13 -9
- data/spec/framework_spec/app/spec/core/module/new_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/private_class_method_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/module/private_instance_methods_spec.rb +26 -2
- data/spec/framework_spec/app/spec/core/module/private_method_defined_spec.rb +16 -6
- data/spec/framework_spec/app/spec/core/module/private_spec.rb +21 -3
- data/spec/framework_spec/app/spec/core/module/protected_instance_methods_spec.rb +66 -18
- data/spec/framework_spec/app/spec/core/module/protected_method_defined_spec.rb +40 -18
- data/spec/framework_spec/app/spec/core/module/protected_spec.rb +24 -7
- data/spec/framework_spec/app/spec/core/module/public_class_method_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/module/public_instance_method_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/module/public_instance_methods_spec.rb +38 -14
- data/spec/framework_spec/app/spec/core/module/public_method_defined_spec.rb +28 -6
- data/spec/framework_spec/app/spec/core/module/public_spec.rb +26 -2
- data/spec/framework_spec/app/spec/core/module/remove_class_variable_spec.rb +46 -2
- data/spec/framework_spec/app/spec/core/module/remove_const_spec.rb +10 -3
- data/spec/framework_spec/app/spec/core/module/remove_method_spec.rb +10 -10
- data/spec/framework_spec/app/spec/core/module/shared/class_eval.rb +36 -14
- data/spec/framework_spec/app/spec/core/module/shared/class_exec.rb +24 -0
- data/spec/framework_spec/app/spec/core/module/shared/equal_value.rb +1 -1
- data/spec/framework_spec/app/spec/core/module/to_s_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/module/undef_method_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/mutex/lock_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/locked_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/sleep_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/synchronize_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/try_lock_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/mutex/unlock_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/nil/and_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/inspect_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/nil_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/or_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/rationalize_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/nil/to_a_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/to_c_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/nil/to_f_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/nil/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/nil/to_r_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/nil/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/nil/xor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/numeric/abs2_spec.rb +36 -0
- data/spec/framework_spec/app/spec/core/numeric/abs_spec.rb +3 -17
- data/spec/framework_spec/app/spec/core/numeric/angle_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/arg_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/ceil_spec.rb +10 -9
- data/spec/framework_spec/app/spec/core/numeric/coerce_spec.rb +23 -6
- data/spec/framework_spec/app/spec/core/numeric/comparison_spec.rb +35 -6
- data/spec/framework_spec/app/spec/core/numeric/conj_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/conjugate_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/denominator_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/numeric/div_spec.rb +22 -10
- data/spec/framework_spec/app/spec/core/numeric/divmod_spec.rb +19 -8
- data/spec/framework_spec/app/spec/core/numeric/eql_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/fdiv_spec.rb +37 -0
- data/spec/framework_spec/app/spec/core/numeric/fixtures/classes.rb +16 -4
- data/spec/framework_spec/app/spec/core/numeric/floor_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/i_spec.rb +17 -0
- data/spec/framework_spec/app/spec/core/numeric/imag_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/imaginary_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/initialize_copy_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/integer_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/magnitude_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/numeric/modulo_spec.rb +33 -9
- data/spec/framework_spec/app/spec/core/numeric/nonzero_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/numeric/numerator_spec.rb +35 -0
- data/spec/framework_spec/app/spec/core/numeric/phase_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/polar_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/quo_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/rationalize_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/numeric/real_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/numeric/rect_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/rectangular_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/numeric/remainder_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/numeric/round_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/shared/abs.rb +19 -0
- data/spec/framework_spec/app/spec/core/numeric/shared/rect.rb +48 -0
- data/spec/framework_spec/app/spec/core/numeric/singleton_method_added_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/numeric/step_spec.rb +215 -162
- data/spec/framework_spec/app/spec/core/numeric/to_c_spec.rb +47 -0
- data/spec/framework_spec/app/spec/core/numeric/to_int_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/numeric/truncate_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/numeric/uminus_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/numeric/uplus_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/numeric/zero_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/object/clone_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/dup_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/fixtures/classes.rb +17 -0
- data/spec/framework_spec/app/spec/core/object/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/object/instance_exec_spec.rb +101 -0
- data/spec/framework_spec/app/spec/core/object/instance_of_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/object/is_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/kind_of_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/object/match_spec.rb +25 -10
- data/spec/framework_spec/app/spec/core/object/metaclass_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/object/new_spec.rb +18 -2
- data/spec/framework_spec/app/spec/core/object/shared/kind_of.rb +3 -3
- data/spec/framework_spec/app/spec/core/objectspace/_id2ref_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/objectspace/add_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/call_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/count_objects_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/objectspace/define_finalizer_spec.rb +44 -3
- data/spec/framework_spec/app/spec/core/objectspace/each_object_spec.rb +27 -5
- data/spec/framework_spec/app/spec/core/objectspace/finalizers_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/fixtures.rb +5 -0
- data/spec/framework_spec/app/spec/core/objectspace/garbage_collect_spec.rb +22 -1
- data/spec/framework_spec/app/spec/core/objectspace/remove_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/objectspace/undefine_finalizer_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/precision/included_spec.rb +14 -12
- data/spec/framework_spec/app/spec/core/precision/prec_f_spec.rb +9 -8
- data/spec/framework_spec/app/spec/core/precision/prec_i_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/precision/prec_spec.rb +19 -14
- data/spec/framework_spec/app/spec/core/proc/arity_spec.rb +104 -53
- data/spec/framework_spec/app/spec/core/proc/binding_spec.rb +14 -14
- data/spec/framework_spec/app/spec/core/proc/block_pass_spec.rb +21 -1
- data/spec/framework_spec/app/spec/core/proc/call_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/proc/case_compare_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/proc/clone_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/proc/curry_spec.rb +142 -0
- data/spec/framework_spec/app/spec/core/proc/dup_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/proc/element_reference_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/proc/eql_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/proc/equal_value_spec.rb +4 -12
- data/spec/framework_spec/app/spec/core/proc/fixtures/common.rb +42 -0
- data/spec/framework_spec/app/spec/core/proc/fixtures/source_location.rb +51 -0
- data/spec/framework_spec/app/spec/core/proc/hash_spec.rb +24 -0
- data/spec/framework_spec/app/spec/core/proc/lambda_spec.rb +62 -0
- data/spec/framework_spec/app/spec/core/proc/new_spec.rb +135 -46
- data/spec/framework_spec/app/spec/core/proc/parameters_spec.rb +2 -0
- data/spec/framework_spec/app/spec/core/proc/shared/call.rb +86 -34
- data/spec/framework_spec/app/spec/core/proc/shared/call_arguments.rb +7 -0
- data/spec/framework_spec/app/spec/core/proc/shared/equal.rb +93 -0
- data/spec/framework_spec/app/spec/core/proc/source_location_spec.rb +64 -0
- data/spec/framework_spec/app/spec/core/proc/to_proc_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/proc/to_s_spec.rb +16 -5
- data/spec/framework_spec/app/spec/core/proc/versions/call_1.8.7.rb +1 -0
- data/spec/framework_spec/app/spec/core/proc/versions/call_1.9.rb +1 -0
- data/spec/framework_spec/app/spec/core/proc/versions/parameters_1.9.rb +73 -0
- data/spec/framework_spec/app/spec/core/proc/yield_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/process/abort_spec.rb +16 -9
- data/spec/framework_spec/app/spec/core/process/constants_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/process/daemon_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/process/detach_spec.rb +5 -9
- data/spec/framework_spec/app/spec/core/process/egid_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/euid_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/process/exec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/process/exit_spec.rb +9 -1
- data/spec/framework_spec/app/spec/core/process/fork_spec.rb +38 -26
- data/spec/framework_spec/app/spec/core/process/getpgid_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/process/getpgrp_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/getpriority_spec.rb +8 -9
- data/spec/framework_spec/app/spec/core/process/getrlimit_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/gid/change_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/eid_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/process/gid/grant_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/re_exchange_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/re_exchangeable_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/rid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/sid_available_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid/switch_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/gid_spec.rb +11 -7
- data/spec/framework_spec/app/spec/core/process/groups_spec.rb +15 -17
- data/spec/framework_spec/app/spec/core/process/initgroups_spec.rb +3 -6
- data/spec/framework_spec/app/spec/core/process/kill_spec.rb +21 -17
- data/spec/framework_spec/app/spec/core/process/maxgroups_spec.rb +12 -5
- data/spec/framework_spec/app/spec/core/process/pid_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/process/ppid_spec.rb +16 -15
- data/spec/framework_spec/app/spec/core/process/setpgid_spec.rb +16 -21
- data/spec/framework_spec/app/spec/core/process/setpgrp_spec.rb +3 -8
- data/spec/framework_spec/app/spec/core/process/setpriority_spec.rb +42 -60
- data/spec/framework_spec/app/spec/core/process/setrlimit_spec.rb +38 -46
- data/spec/framework_spec/app/spec/core/process/setsid_spec.rb +20 -22
- data/spec/framework_spec/app/spec/core/process/spawn_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/process/status/_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/coredump_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/equal_value_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/exited_spec.rb +38 -0
- data/spec/framework_spec/app/spec/core/process/status/exitstatus_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/process/status/inspect_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/pid_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/process/status/right_shift_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/signaled_spec.rb +36 -0
- data/spec/framework_spec/app/spec/core/process/status/stopped_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/stopsig_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/success_spec.rb +53 -0
- data/spec/framework_spec/app/spec/core/process/status/termsig_spec.rb +41 -0
- data/spec/framework_spec/app/spec/core/process/status/to_i_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/to_int_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/status/to_s_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/getegid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/geteuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/getgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/getuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/issetugid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setegid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/seteuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setregid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setresgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setresuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setreuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setrgid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setruid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/sys/setuid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/times_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/process/uid/change_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/eid_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/process/uid/grant_privilege_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/re_exchange_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/re_exchangeable_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/rid_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/sid_available_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid/switch_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/process/uid_spec.rb +11 -7
- data/spec/framework_spec/app/spec/core/process/wait2_spec.rb +7 -6
- data/spec/framework_spec/app/spec/core/process/wait_spec.rb +25 -7
- data/spec/framework_spec/app/spec/core/process/waitall_spec.rb +10 -8
- data/spec/framework_spec/app/spec/core/process/waitpid2_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/process/waitpid_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/random/bytes_spec.rb +40 -0
- data/spec/framework_spec/app/spec/core/random/equal_value_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/random/new_seed_spec.rb +27 -0
- data/spec/framework_spec/app/spec/core/random/new_spec.rb +33 -0
- data/spec/framework_spec/app/spec/core/random/rand_spec.rb +218 -0
- data/spec/framework_spec/app/spec/core/random/seed_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/random/srand_spec.rb +43 -0
- data/spec/framework_spec/app/spec/core/range/begin_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/cover_spec.rb +57 -0
- data/spec/framework_spec/app/spec/core/range/each_spec.rb +5 -4
- data/spec/framework_spec/app/spec/core/range/end_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/eql_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/equal_value_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/exclude_end_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/range/first_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/include_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/range/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/last_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/max_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/range/member_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/min_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/range/new_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/range/shared/equal_value.rb +2 -2
- data/spec/framework_spec/app/spec/core/range/shared/include.rb +9 -0
- data/spec/framework_spec/app/spec/core/range/step_spec.rb +4 -3
- data/spec/framework_spec/app/spec/core/range/to_a_spec.rb +10 -3
- data/spec/framework_spec/app/spec/core/range/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/rational/Rational_spec.rb +35 -0
- data/spec/framework_spec/app/spec/core/rational/abs_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/ceil_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/coerce_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/comparison_spec.rb +23 -0
- data/spec/framework_spec/app/spec/core/rational/denominator_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/div_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/divide_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/divmod_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/rational/equal_value_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/exponent_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/fdiv_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/floor_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/initialize_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/inspect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/integer_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/rational/magnitude_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/marshal_dump_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/marshal_load_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/minus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/modulo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/multiply_spec.rb +19 -0
- data/spec/framework_spec/app/spec/core/rational/numerator_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/plus_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/rational/quo_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/rationalize_spec.rb +33 -0
- data/spec/framework_spec/app/spec/core/rational/remainder_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/round_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_f_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_i_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_r_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/to_s_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/truncate_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/rational/zero_spec.rb +15 -0
- data/spec/framework_spec/app/spec/core/regexp/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/casefold_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/compile_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/encoding_spec.rb +56 -0
- data/spec/framework_spec/app/spec/core/regexp/eql_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/equal_value_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/escape_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/regexp/fixed_encoding_spec.rb +36 -0
- data/spec/framework_spec/app/spec/core/regexp/hash_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/initialize_copy_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/inspect_spec.rb +9 -1
- data/spec/framework_spec/app/spec/core/regexp/kcode_spec.rb +17 -16
- data/spec/framework_spec/app/spec/core/regexp/last_match_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/regexp/match_spec.rb +31 -3
- data/spec/framework_spec/app/spec/core/regexp/named_captures_spec.rb +1 -0
- data/spec/framework_spec/app/spec/core/regexp/names_spec.rb +1 -0
- data/spec/framework_spec/app/spec/core/regexp/new_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/options_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/regexp/quote_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/regexp/shared/match.rb +2 -2
- data/spec/framework_spec/app/spec/core/regexp/shared/new.rb +65 -53
- data/spec/framework_spec/app/spec/core/regexp/source_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/regexp/try_convert_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/regexp/union_spec.rb +18 -2
- data/spec/framework_spec/app/spec/core/regexp/versions/named_captures_1.9.rb +35 -0
- data/spec/framework_spec/app/spec/core/regexp/versions/names_1.9.rb +29 -0
- data/spec/framework_spec/app/spec/core/signal/list_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/signal/trap_spec.rb +106 -1
- data/spec/framework_spec/app/spec/core/string/allocate_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/append_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/ascii_only_spec.rb +44 -29
- data/spec/framework_spec/app/spec/core/string/bytes_spec.rb +25 -18
- data/spec/framework_spec/app/spec/core/string/bytesize_spec.rb +12 -12
- data/spec/framework_spec/app/spec/core/string/capitalize_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/string/case_compare_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/casecmp_spec.rb +117 -64
- data/spec/framework_spec/app/spec/core/string/center_spec.rb +24 -18
- data/spec/framework_spec/app/spec/core/string/chars_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/chomp_spec.rb +68 -39
- data/spec/framework_spec/app/spec/core/string/chop_spec.rb +34 -56
- data/spec/framework_spec/app/spec/core/string/chr_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/string/clear_spec.rb +39 -0
- data/spec/framework_spec/app/spec/core/string/codepoints_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/string/comparison_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/string/concat_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/count_spec.rb +26 -11
- data/spec/framework_spec/app/spec/core/string/crypt_spec.rb +35 -35
- data/spec/framework_spec/app/spec/core/string/delete_spec.rb +25 -8
- data/spec/framework_spec/app/spec/core/string/downcase_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/string/dump_spec.rb +13 -4
- data/spec/framework_spec/app/spec/core/string/each_byte_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/each_char_spec.rb +3 -29
- data/spec/framework_spec/app/spec/core/string/each_codepoint_spec.rb +8 -0
- data/spec/framework_spec/app/spec/core/string/each_line_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/each_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/element_reference_spec.rb +9 -3
- data/spec/framework_spec/app/spec/core/string/element_set_spec.rb +54 -10
- data/spec/framework_spec/app/spec/core/string/empty_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/encode_spec.rb +114 -0
- data/spec/framework_spec/app/spec/core/string/encoding_spec.rb +181 -0
- data/spec/framework_spec/app/spec/core/string/end_with_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/entries_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/eql_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/string/equal_value_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/string/fixtures/classes.rb +12 -9
- data/spec/framework_spec/app/spec/core/string/fixtures/iso-8859-9-encoding.rb +9 -0
- data/spec/framework_spec/app/spec/core/string/fixtures/utf-8-encoding.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/force_encoding_spec.rb +61 -0
- data/spec/framework_spec/app/spec/core/string/getbyte_spec.rb +63 -0
- data/spec/framework_spec/app/spec/core/string/gsub_spec.rb +228 -75
- data/spec/framework_spec/app/spec/core/string/hash_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/hex_spec.rb +23 -9
- data/spec/framework_spec/app/spec/core/string/include_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/string/index_spec.rb +46 -52
- data/spec/framework_spec/app/spec/core/string/initialize_spec.rb +19 -21
- data/spec/framework_spec/app/spec/core/string/insert_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/inspect_spec.rb +661 -41
- data/spec/framework_spec/app/spec/core/string/intern_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/length_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/lines_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/string/ljust_spec.rb +18 -12
- data/spec/framework_spec/app/spec/core/string/lstrip_spec.rb +23 -14
- data/spec/framework_spec/app/spec/core/string/match_spec.rb +11 -11
- data/spec/framework_spec/app/spec/core/string/modulo_spec.rb +103 -45
- data/spec/framework_spec/app/spec/core/string/multiply_spec.rb +10 -10
- data/spec/framework_spec/app/spec/core/string/new_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/next_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/oct_spec.rb +59 -16
- data/spec/framework_spec/app/spec/core/string/ord_spec.rb +32 -0
- data/spec/framework_spec/app/spec/core/string/partition_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/string/plus_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/string/replace_spec.rb +18 -13
- data/spec/framework_spec/app/spec/core/string/reverse_spec.rb +16 -11
- data/spec/framework_spec/app/spec/core/string/rindex_spec.rb +75 -69
- data/spec/framework_spec/app/spec/core/string/rjust_spec.rb +18 -12
- data/spec/framework_spec/app/spec/core/string/rpartition_spec.rb +8 -3
- data/spec/framework_spec/app/spec/core/string/rstrip_spec.rb +52 -20
- data/spec/framework_spec/app/spec/core/string/scan_spec.rb +48 -23
- data/spec/framework_spec/app/spec/core/string/setbyte_spec.rb +55 -0
- data/spec/framework_spec/app/spec/core/string/shared/chars.rb +70 -0
- data/spec/framework_spec/app/spec/core/string/shared/codepoints.rb +66 -0
- data/spec/framework_spec/app/spec/core/string/shared/concat.rb +9 -6
- data/spec/framework_spec/app/spec/core/string/shared/each_line.rb +27 -6
- data/spec/framework_spec/app/spec/core/string/shared/encode.rb +112 -0
- data/spec/framework_spec/app/spec/core/string/shared/slice.rb +13 -11
- data/spec/framework_spec/app/spec/core/string/shared/succ.rb +3 -3
- data/spec/framework_spec/app/spec/core/string/shared/to_s.rb +1 -1
- data/spec/framework_spec/app/spec/core/string/shared/to_sym.rb +32 -0
- data/spec/framework_spec/app/spec/core/string/shared/versions/slice_1.9.rb +78 -0
- data/spec/framework_spec/app/spec/core/string/size_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/slice_spec.rb +54 -42
- data/spec/framework_spec/app/spec/core/string/split_spec.rb +109 -60
- data/spec/framework_spec/app/spec/core/string/squeeze_spec.rb +21 -7
- data/spec/framework_spec/app/spec/core/string/start_with_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/strip_spec.rb +49 -12
- data/spec/framework_spec/app/spec/core/string/sub_spec.rb +91 -43
- data/spec/framework_spec/app/spec/core/string/succ_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/sum_spec.rb +7 -2
- data/spec/framework_spec/app/spec/core/string/swapcase_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/string/to_a_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/string/to_c_spec.rb +101 -0
- data/spec/framework_spec/app/spec/core/string/to_f_spec.rb +8 -16
- data/spec/framework_spec/app/spec/core/string/to_i_spec.rb +38 -16
- data/spec/framework_spec/app/spec/core/string/to_r_spec.rb +60 -0
- data/spec/framework_spec/app/spec/core/string/to_s_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/to_str_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/to_sym_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/string/tr_s_spec.rb +8 -8
- data/spec/framework_spec/app/spec/core/string/tr_spec.rb +37 -5
- data/spec/framework_spec/app/spec/core/string/try_convert_spec.rb +15 -17
- data/spec/framework_spec/app/spec/core/string/unpack/a_spec.rb +51 -0
- data/spec/framework_spec/app/spec/core/string/unpack/at_spec.rb +29 -0
- data/spec/framework_spec/app/spec/core/string/unpack/b_spec.rb +184 -0
- data/spec/framework_spec/app/spec/core/string/unpack/c_spec.rb +63 -0
- data/spec/framework_spec/app/spec/core/string/unpack/comment_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/string/unpack/d_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/string/unpack/e_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/string/unpack/f_spec.rb +28 -0
- data/spec/framework_spec/app/spec/core/string/unpack/g_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/string/unpack/h_spec.rb +124 -0
- data/spec/framework_spec/app/spec/core/string/unpack/i_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/string/unpack/l_spec.rb +216 -0
- data/spec/framework_spec/app/spec/core/string/unpack/m_spec.rb +165 -0
- data/spec/framework_spec/app/spec/core/string/unpack/n_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/string/unpack/percent_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/string/unpack/q_spec.rb +42 -0
- data/spec/framework_spec/app/spec/core/string/unpack/s_spec.rb +72 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/basic.rb +25 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/float.rb +267 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/integer.rb +343 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/string.rb +51 -0
- data/spec/framework_spec/app/spec/core/string/unpack/shared/unicode.rb +60 -0
- data/spec/framework_spec/app/spec/core/string/unpack/u_spec.rb +78 -0
- data/spec/framework_spec/app/spec/core/string/unpack/v_spec.rb +18 -0
- data/spec/framework_spec/app/spec/core/string/unpack/w_spec.rb +25 -0
- data/spec/framework_spec/app/spec/core/string/unpack/x_spec.rb +62 -0
- data/spec/framework_spec/app/spec/core/string/unpack/z_spec.rb +21 -0
- data/spec/framework_spec/app/spec/core/string/unpack_spec.rb +121 -32
- data/spec/framework_spec/app/spec/core/string/upcase_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/string/upto_spec.rb +21 -11
- data/spec/framework_spec/app/spec/core/string/valid_encoding_spec.rb +122 -0
- data/spec/framework_spec/app/spec/core/struct/each_pair_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/struct/each_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/struct/element_reference_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/struct/element_set_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/struct/eql_spec.rb +10 -4
- data/spec/framework_spec/app/spec/core/struct/equal_value_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/struct/fixtures/classes.rb +24 -8
- data/spec/framework_spec/app/spec/core/struct/hash_spec.rb +24 -10
- data/spec/framework_spec/app/spec/core/struct/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/struct/initialize_spec.rb +9 -5
- data/spec/framework_spec/app/spec/core/struct/inspect_spec.rb +13 -6
- data/spec/framework_spec/app/spec/core/struct/length_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/struct/members_spec.rb +17 -7
- data/spec/framework_spec/app/spec/core/struct/new_spec.rb +61 -32
- data/spec/framework_spec/app/spec/core/struct/select_spec.rb +9 -9
- data/spec/framework_spec/app/spec/core/struct/shared/equal_value.rb +20 -5
- data/spec/framework_spec/app/spec/core/struct/shared/inspect.rb +13 -0
- data/spec/framework_spec/app/spec/core/struct/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/struct/struct_spec.rb +6 -6
- data/spec/framework_spec/app/spec/core/struct/tms/cstime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/tms/cutime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/tms/element_reference_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/struct/tms/members_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/struct/tms/new_spec.rb +5 -0
- data/spec/framework_spec/app/spec/core/struct/tms/stime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/tms/utime_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/struct/to_a_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/struct/to_s_spec.rb +6 -3
- data/spec/framework_spec/app/spec/core/struct/values_at_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/struct/values_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/symbol/all_symbols_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/symbol/capitalize_spec.rb +44 -0
- data/spec/framework_spec/app/spec/core/symbol/case_compare_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/casecmp_spec.rb +65 -0
- data/spec/framework_spec/app/spec/core/symbol/comparison_spec.rb +52 -0
- data/spec/framework_spec/app/spec/core/symbol/downcase_spec.rb +26 -0
- data/spec/framework_spec/app/spec/core/symbol/element_reference_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/empty_spec.rb +14 -0
- data/spec/framework_spec/app/spec/core/symbol/encoding_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/equal_value_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/id2name_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/inspect_spec.rb +19 -7
- data/spec/framework_spec/app/spec/core/symbol/intern_spec.rb +11 -0
- data/spec/framework_spec/app/spec/core/symbol/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/match_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/symbol/next_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/slice_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/succ_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/symbol/swapcase_spec.rb +34 -0
- data/spec/framework_spec/app/spec/core/symbol/to_i_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/to_int_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/to_proc_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/symbol/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/symbol/to_sym_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/symbol/upcase_spec.rb +22 -0
- data/spec/framework_spec/app/spec/core/systemexit/initialize_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/thread/abort_on_exception_spec.rb +14 -2
- data/spec/framework_spec/app/spec/core/thread/add_trace_func_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/alive_spec.rb +18 -4
- data/spec/framework_spec/app/spec/core/thread/allocate_spec.rb +9 -0
- data/spec/framework_spec/app/spec/core/thread/backtrace_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/critical_spec.rb +77 -75
- data/spec/framework_spec/app/spec/core/thread/current_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/thread/element_reference_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/thread/element_set_spec.rb +14 -5
- data/spec/framework_spec/app/spec/core/thread/exclusive_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/exit_spec.rb +15 -5
- data/spec/framework_spec/app/spec/core/thread/fixtures/classes.rb +53 -40
- data/spec/framework_spec/app/spec/core/thread/fork_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/thread/group_spec.rb +5 -2
- data/spec/framework_spec/app/spec/core/thread/initialize_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/inspect_spec.rb +8 -4
- data/spec/framework_spec/app/spec/core/thread/join_spec.rb +17 -6
- data/spec/framework_spec/app/spec/core/thread/key_spec.rb +16 -5
- data/spec/framework_spec/app/spec/core/thread/keys_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/kill_spec.rb +11 -3
- data/spec/framework_spec/app/spec/core/thread/list_spec.rb +7 -2
- data/spec/framework_spec/app/spec/core/thread/main_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/new_spec.rb +40 -3
- data/spec/framework_spec/app/spec/core/thread/pass_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/thread/priority_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/thread/raise_spec.rb +41 -27
- data/spec/framework_spec/app/spec/core/thread/run_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/thread/safe_level_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/thread/set_trace_func_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/thread/shared/exit.rb +38 -30
- data/spec/framework_spec/app/spec/core/thread/shared/start.rb +51 -0
- data/spec/framework_spec/app/spec/core/thread/shared/wakeup.rb +25 -13
- data/spec/framework_spec/app/spec/core/thread/start_spec.rb +9 -2
- data/spec/framework_spec/app/spec/core/thread/status_spec.rb +8 -4
- data/spec/framework_spec/app/spec/core/thread/stop_spec.rb +12 -8
- data/spec/framework_spec/app/spec/core/thread/terminate_spec.rb +7 -3
- data/spec/framework_spec/app/spec/core/thread/value_spec.rb +21 -8
- data/spec/framework_spec/app/spec/core/thread/wakeup_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/threadgroup/add_spec.rb +36 -37
- data/spec/framework_spec/app/spec/core/threadgroup/enclose_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/threadgroup/enclosed_spec.rb +5 -1
- data/spec/framework_spec/app/spec/core/threadgroup/list_spec.rb +24 -25
- data/spec/framework_spec/app/spec/core/time/_dump_spec.rb +13 -2
- data/spec/framework_spec/app/spec/core/time/_load_spec.rb +24 -2
- data/spec/framework_spec/app/spec/core/time/asctime_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/at_spec.rb +34 -14
- data/spec/framework_spec/app/spec/core/time/comparison_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/ctime_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/day_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/dst_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/dup_spec.rb +10 -2
- data/spec/framework_spec/app/spec/core/time/eql_spec.rb +9 -3
- data/spec/framework_spec/app/spec/core/time/fixtures/classes.rb +5 -0
- data/spec/framework_spec/app/spec/core/time/fixtures/methods.rb +1 -29
- data/spec/framework_spec/app/spec/core/time/friday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/getgm_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/getlocal_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/getutc_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/gm_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/gmt_offset_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/gmt_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/gmtime_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/gmtoff_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/hash_spec.rb +5 -5
- data/spec/framework_spec/app/spec/core/time/hour_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/initialize_copy_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/initialize_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/inspect_spec.rb +11 -2
- data/spec/framework_spec/app/spec/core/time/isdst_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/local_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/localtime_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/mday_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/min_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/minus_spec.rb +53 -33
- data/spec/framework_spec/app/spec/core/time/mktime_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/time/mon_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/monday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/month_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/now_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/nsec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/plus_spec.rb +64 -19
- data/spec/framework_spec/app/spec/core/time/round_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/saturday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/sec_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/shared/gmt_offset.rb +23 -0
- data/spec/framework_spec/app/spec/core/time/shared/inspect.rb +25 -0
- data/spec/framework_spec/app/spec/core/time/shared/isdst.rb +1 -1
- data/spec/framework_spec/app/spec/core/time/shared/local.rb +8 -0
- data/spec/framework_spec/app/spec/core/time/shared/now.rb +12 -4
- data/spec/framework_spec/app/spec/core/time/shared/time_params.rb +134 -35
- data/spec/framework_spec/app/spec/core/time/strftime_spec.rb +141 -2
- data/spec/framework_spec/app/spec/core/time/subsec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/succ_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/sunday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/thursday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/times_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/to_a_spec.rb +4 -3
- data/spec/framework_spec/app/spec/core/time/to_f_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/to_i_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/to_r_spec.rb +13 -0
- data/spec/framework_spec/app/spec/core/time/to_s_spec.rb +11 -2
- data/spec/framework_spec/app/spec/core/time/tuesday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/tv_nsec_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/tv_sec_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/tv_usec_spec.rb +6 -2
- data/spec/framework_spec/app/spec/core/time/usec_spec.rb +8 -2
- data/spec/framework_spec/app/spec/core/time/utc_offset_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/utc_spec.rb +7 -7
- data/spec/framework_spec/app/spec/core/time/wday_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/wednesday_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/time/yday_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/time/year_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/time/zone_spec.rb +4 -3
- data/spec/framework_spec/app/spec/core/true/and_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/inspect_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/or_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/to_s_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/true/xor_spec.rb +1 -1
- data/spec/framework_spec/app/spec/core/unboundmethod/arity_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/unboundmethod/bind_spec.rb +26 -6
- data/spec/framework_spec/app/spec/core/unboundmethod/clone_spec.rb +2 -2
- data/spec/framework_spec/app/spec/core/unboundmethod/eql_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/equal_value_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/unboundmethod/fixtures/classes.rb +4 -1
- data/spec/framework_spec/app/spec/core/unboundmethod/hash_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/inspect_spec.rb +3 -3
- data/spec/framework_spec/app/spec/core/unboundmethod/name_spec.rb +19 -5
- data/spec/framework_spec/app/spec/core/unboundmethod/owner_spec.rb +4 -4
- data/spec/framework_spec/app/spec/core/unboundmethod/parameters_spec.rb +7 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/shared/to_s.rb +4 -4
- data/spec/framework_spec/app/spec/core/unboundmethod/source_location_spec.rb +31 -0
- data/spec/framework_spec/app/spec/core/unboundmethod/to_s_spec.rb +3 -3
- data/spec/framework_spec/app/spec/fixtures/class.rb +39 -16
- data/spec/framework_spec/app/spec/fixtures/class_variables.rb +7 -7
- data/spec/framework_spec/app/spec/fixtures/code/file_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/line_fixture.rb +5 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_ext_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.bundle +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.dll +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.dylib +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.bundle +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.dll +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.dylib +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.ext.so +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/load_fixture.so +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/methods_fixture.rb +364 -0
- data/spec/framework_spec/app/spec/fixtures/code/raise_fixture.rb +1 -0
- data/spec/framework_spec/app/spec/fixtures/code/recursive_load_fixture.rb +5 -0
- data/spec/framework_spec/app/spec/fixtures/code/recursive_require_fixture.rb +3 -0
- data/spec/framework_spec/app/spec/fixtures/code/wrap_fixture.rb +3 -0
- data/spec/framework_spec/app/spec/fixtures/code_loading.rb +30 -0
- data/spec/framework_spec/app/spec/fixtures/enumerator/classes.rb +15 -0
- data/spec/framework_spec/app/spec/fixtures/kernel/callcc.rb +17 -0
- data/spec/framework_spec/app/spec/fixtures/kernel/classes.rb +56 -0
- data/spec/framework_spec/app/spec/fixtures/math/common.rb +3 -0
- data/spec/framework_spec/app/spec/fixtures/reflection.rb +352 -0
- data/spec/framework_spec/app/spec/language/BEGIN_spec.rb +57 -0
- data/spec/framework_spec/app/spec/language/README +1 -1
- data/spec/framework_spec/app/spec/language/alias_spec.rb +33 -20
- data/spec/framework_spec/app/spec/language/and_spec.rb +8 -8
- data/spec/framework_spec/app/spec/language/array_spec.rb +5 -5
- data/spec/framework_spec/app/spec/language/block_spec.rb +408 -27
- data/spec/framework_spec/app/spec/language/break_spec.rb +210 -280
- data/spec/framework_spec/app/spec/language/case_spec.rb +37 -38
- data/spec/framework_spec/app/spec/language/class_spec.rb +52 -70
- data/spec/framework_spec/app/spec/language/class_variable_spec.rb +6 -6
- data/spec/framework_spec/app/spec/language/{constants_spec_dontrun.rb → constants_spec.rb} +14 -0
- data/spec/framework_spec/app/spec/language/def_spec.rb +83 -68
- data/spec/framework_spec/app/spec/language/defined_spec.rb +1181 -142
- data/spec/framework_spec/app/spec/language/encoding_spec.rb +19 -20
- data/spec/framework_spec/app/spec/language/ensure_spec.rb +32 -37
- data/spec/framework_spec/app/spec/language/execution_spec.rb +9 -11
- data/spec/framework_spec/app/spec/language/file_spec.rb +21 -39
- data/spec/framework_spec/app/spec/language/fixtures/block.rb +26 -15
- data/spec/framework_spec/app/spec/language/fixtures/break.rb +240 -0
- data/spec/framework_spec/app/spec/language/fixtures/break_lambda_toplevel.rb +9 -0
- data/spec/framework_spec/app/spec/language/fixtures/break_lambda_toplevel_block.rb +23 -0
- data/spec/framework_spec/app/spec/language/fixtures/break_lambda_toplevel_method.rb +17 -0
- data/spec/framework_spec/app/spec/language/fixtures/classes.rb +8 -8
- data/spec/framework_spec/app/spec/language/fixtures/defined.rb +270 -0
- data/spec/framework_spec/app/spec/language/fixtures/ensure.rb +6 -6
- data/spec/framework_spec/app/spec/language/fixtures/file.rb +1 -1
- data/spec/framework_spec/app/spec/language/fixtures/literal_lambda.rb +7 -0
- data/spec/framework_spec/app/spec/language/fixtures/next.rb +128 -0
- data/spec/framework_spec/app/spec/language/fixtures/private.rb +3 -3
- data/spec/framework_spec/app/spec/language/fixtures/return.rb +44 -0
- data/spec/framework_spec/app/spec/language/fixtures/rubyopt.rb +1 -0
- data/spec/framework_spec/app/spec/language/fixtures/send.rb +110 -0
- data/spec/framework_spec/app/spec/language/fixtures/send_1.9.rb +20 -0
- data/spec/framework_spec/app/spec/language/fixtures/super.rb +38 -7
- data/spec/framework_spec/app/spec/language/fixtures/variables.rb +1 -1
- data/spec/framework_spec/app/spec/language/fixtures/yield.rb +20 -2
- data/spec/framework_spec/app/spec/language/for_spec.rb +63 -39
- data/spec/framework_spec/app/spec/language/hash_spec.rb +26 -1
- data/spec/framework_spec/app/spec/language/if_spec.rb +32 -2
- data/spec/framework_spec/app/spec/language/line_spec.rb +42 -17
- data/spec/framework_spec/app/spec/language/literal_lambda_spec.rb +1 -0
- data/spec/framework_spec/app/spec/language/loop_spec.rb +7 -8
- data/spec/framework_spec/app/spec/language/magic_comment_spec.rb +60 -61
- data/spec/framework_spec/app/spec/language/metaclass_spec.rb +21 -24
- data/spec/framework_spec/app/spec/language/module_spec.rb +46 -1
- data/spec/framework_spec/app/spec/language/next_spec.rb +241 -7
- data/spec/framework_spec/app/spec/language/not_spec.rb +22 -2
- data/spec/framework_spec/app/spec/language/numbers_spec.rb +5 -6
- data/spec/framework_spec/app/spec/language/or_spec.rb +33 -7
- data/spec/framework_spec/app/spec/language/order_spec.rb +3 -3
- data/spec/framework_spec/app/spec/language/precedence_spec.rb +31 -33
- data/spec/framework_spec/app/spec/language/predefined/data_spec.rb +45 -0
- data/spec/framework_spec/app/spec/language/{fixtures/predefined.rb → predefined/fixtures/data1.rb} +2 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data2.rb +4 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data3.rb +7 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data4.rb +4 -0
- data/spec/framework_spec/app/spec/{core/io/data/fixtures/data2.rb → language/predefined/fixtures/data_flock.rb} +1 -1
- data/spec/framework_spec/app/spec/language/predefined/fixtures/data_only.rb +2 -0
- data/spec/framework_spec/app/spec/language/predefined/fixtures/print_data.rb +3 -0
- data/spec/framework_spec/app/spec/language/predefined_spec.rb +599 -283
- data/spec/framework_spec/app/spec/language/private_spec.rb +4 -4
- data/spec/framework_spec/app/spec/language/proc_spec.rb +238 -0
- data/spec/framework_spec/app/spec/language/redo_spec.rb +2 -2
- data/spec/framework_spec/app/spec/language/regexp/anchors_spec.rb +163 -0
- data/spec/framework_spec/app/spec/language/regexp/back-references_spec.rb +50 -0
- data/spec/framework_spec/app/spec/language/regexp/character_classes_spec.rb +96 -0
- data/spec/framework_spec/app/spec/language/regexp/encoding_spec.rb +129 -0
- data/spec/framework_spec/app/spec/language/regexp/escapes_spec.rb +80 -0
- data/spec/framework_spec/app/spec/language/regexp/grouping_spec.rb +23 -0
- data/spec/framework_spec/app/spec/language/regexp/interpolation_spec.rb +55 -0
- data/spec/framework_spec/app/spec/language/regexp/modifiers_spec.rb +132 -0
- data/spec/framework_spec/app/spec/language/regexp/repetition_spec.rb +47 -0
- data/spec/framework_spec/app/spec/language/regexp/versions/character_classes_1.9.rb +499 -0
- data/spec/framework_spec/app/spec/language/regexp_spec.rb +42 -677
- data/spec/framework_spec/app/spec/language/rescue_spec.rb +57 -8
- data/spec/framework_spec/app/spec/language/retry_spec.rb +4 -4
- data/spec/framework_spec/app/spec/language/return_spec.rb +11 -2
- data/spec/framework_spec/app/spec/language/send_spec.rb +227 -0
- data/spec/framework_spec/app/spec/language/shared/__FILE__.rb +37 -0
- data/spec/framework_spec/app/spec/language/shared/__LINE__.rb +17 -0
- data/spec/framework_spec/app/spec/language/singleton_class_spec.rb +299 -0
- data/spec/framework_spec/app/spec/language/splat_spec.rb +188 -0
- data/spec/framework_spec/app/spec/language/string_spec.rb +42 -7
- data/spec/framework_spec/app/spec/language/super_spec.rb +11 -5
- data/spec/framework_spec/app/spec/language/symbol_spec.rb +18 -11
- data/spec/framework_spec/app/spec/language/throw_spec.rb +3 -3
- data/spec/framework_spec/app/spec/language/undef_spec.rb +1 -1
- data/spec/framework_spec/app/spec/language/unless_spec.rb +8 -8
- data/spec/framework_spec/app/spec/language/until_spec.rb +27 -27
- data/spec/framework_spec/app/spec/language/variables_spec.rb +57 -61
- data/spec/framework_spec/app/spec/language/versions/array_1.9.rb +8 -0
- data/spec/framework_spec/app/spec/language/versions/block_1.9.rb +80 -17
- data/spec/framework_spec/app/spec/language/versions/case_1.9.rb +5 -5
- data/spec/framework_spec/app/spec/language/versions/hash_1.9.rb +19 -0
- data/spec/framework_spec/app/spec/language/versions/literal_lambda_1.9.rb +143 -0
- data/spec/framework_spec/app/spec/language/versions/not_1.9.rb +22 -0
- data/spec/framework_spec/app/spec/language/versions/regexp_1.9.rb +3 -3
- data/spec/framework_spec/app/spec/language/versions/send_1.9.rb +196 -0
- data/spec/framework_spec/app/spec/language/versions/symbol_1.9.rb +10 -2
- data/spec/framework_spec/app/spec/language/versions/variables_1.9.rb +8 -0
- data/spec/framework_spec/app/spec/language/while_spec.rb +24 -24
- data/spec/framework_spec/app/spec/language/yield_spec.rb +105 -84
- data/spec/framework_spec/app/spec/library/base64/b64encode_spec.rb +36 -0
- data/spec/framework_spec/app/spec/library/base64/decode64_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/base64/decode_b_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/base64/encode64_spec.rb +14 -0
- data/spec/framework_spec/app/spec/library/digest/hexencode_spec.rb +31 -0
- data/spec/framework_spec/app/spec/library/digest/md5/append_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/md5/block_length_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/digest_bang_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/digest_length_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/digest_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/equal_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/file_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/digest/md5/hexdigest_bang_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/hexdigest_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/inspect_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/length_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/md5/reset_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/shared/constants.rb +1 -1
- data/spec/framework_spec/app/spec/library/digest/md5/shared/sample.rb +1 -1
- data/spec/framework_spec/app/spec/library/digest/md5/size_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/md5/to_s_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/md5/update_spec.rb +3 -3
- data/spec/framework_spec/app/spec/library/digest/sha1/digest_spec.rb +2 -2
- data/spec/framework_spec/app/spec/library/digest/sha1/file_spec.rb +43 -0
- data/spec/framework_spec/app/spec/library/digest/sha1/shared/constants.rb +1 -1
- data/spec/framework_spec/app/spec/library/set/add_spec.rb +27 -0
- data/spec/framework_spec/app/spec/library/set/append_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/classify_spec.rb +35 -0
- data/spec/framework_spec/app/spec/library/set/clear_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/collect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/constructor_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/delete_if_spec.rb +46 -0
- data/spec/framework_spec/app/spec/library/set/delete_spec.rb +37 -0
- data/spec/framework_spec/app/spec/library/set/difference_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/divide_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/each_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/empty_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/enumerable/to_set_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/set/eql_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/equal_value_spec.rb +38 -0
- data/spec/framework_spec/app/spec/library/set/exclusion_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/flatten_merge_spec.rb +23 -0
- data/spec/framework_spec/app/spec/library/set/flatten_spec.rb +40 -0
- data/spec/framework_spec/app/spec/library/set/hash_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/include_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/initialize_copy_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/initialize_spec.rb +24 -0
- data/spec/framework_spec/app/spec/library/set/inspect_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/intersection_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/set/keep_if_spec.rb +41 -0
- data/spec/framework_spec/app/spec/library/set/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/map_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/member_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/merge_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/set/minus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/plus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/pretty_print_cycle_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/pretty_print_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/proper_subset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/proper_superset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/reject_spec.rb +50 -0
- data/spec/framework_spec/app/spec/library/set/replace_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/select_spec.rb +45 -0
- data/spec/framework_spec/app/spec/library/set/shared/add.rb +14 -0
- data/spec/framework_spec/app/spec/library/set/shared/collect.rb +20 -0
- data/spec/framework_spec/app/spec/library/set/shared/difference.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/shared/include.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/shared/intersection.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/shared/length.rb +6 -0
- data/spec/framework_spec/app/spec/library/set/shared/union.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/add_spec.rb +36 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/append_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/classify_spec.rb +35 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/clear_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/collect_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/constructor_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/delete_if_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/delete_spec.rb +37 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/difference_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/divide_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/each_spec.rb +36 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/empty_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/eql_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/equal_value_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/exclusion_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/flatten_merge_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/flatten_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/hash_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/include_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/initialize_copy_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/initialize_spec.rb +32 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/inspect_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/intersection_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/keep_if_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/map_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/member_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/merge_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/minus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/plus_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/pretty_print_cycle_spec.rb +10 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/pretty_print_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/proper_subset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/proper_superset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/reject_spec.rb +52 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/replace_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/select_spec.rb +38 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/add.rb +14 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/collect.rb +20 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/difference.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/include.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/intersection.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/length.rb +6 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/shared/union.rb +15 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/subset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/subtract_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/superset_spec.rb +33 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/to_a_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/set/sortedset/union_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/set/subset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/subtract_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/set/superset_spec.rb +34 -0
- data/spec/framework_spec/app/spec/library/set/to_a_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/set/union_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/append_spec.rb +84 -0
- data/spec/framework_spec/app/spec/library/stringio/binmode_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/bytes_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/stringio/chars_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/stringio/close_read_spec.rb +31 -0
- data/spec/framework_spec/app/spec/library/stringio/close_spec.rb +23 -0
- data/spec/framework_spec/app/spec/library/stringio/close_write_spec.rb +31 -0
- data/spec/framework_spec/app/spec/library/stringio/closed_read_spec.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/closed_spec.rb +16 -0
- data/spec/framework_spec/app/spec/library/stringio/closed_write_spec.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/codepoints.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/each_byte_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/each_char_spec.rb +13 -0
- data/spec/framework_spec/app/spec/library/stringio/each_codepoint.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/each_line_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringio/each_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringio/eof_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringio/external_encoding.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/fcntl_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringio/fileno_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/fixtures/classes.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringio/flush_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/fsync_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/getbyte_spec.rb +21 -0
- data/spec/framework_spec/app/spec/library/stringio/getc_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringio/gets_spec.rb +139 -0
- data/spec/framework_spec/app/spec/library/stringio/initialize_copy_spec.rb +96 -0
- data/spec/framework_spec/app/spec/library/stringio/initialize_spec.rb +194 -0
- data/spec/framework_spec/app/spec/library/stringio/internal_encoding.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/isatty_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/length_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/lineno_spec.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringio/lines_spec.rb +17 -0
- data/spec/framework_spec/app/spec/library/stringio/open_spec.rb +216 -0
- data/spec/framework_spec/app/spec/library/stringio/path_spec.rb +16 -0
- data/spec/framework_spec/app/spec/library/stringio/pid_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringio/pos_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringio/print_spec.rb +114 -0
- data/spec/framework_spec/app/spec/library/stringio/printf_spec.rb +61 -0
- data/spec/framework_spec/app/spec/library/stringio/putc_spec.rb +88 -0
- data/spec/framework_spec/app/spec/library/stringio/puts_spec.rb +159 -0
- data/spec/framework_spec/app/spec/library/stringio/read_spec.rb +62 -0
- data/spec/framework_spec/app/spec/library/stringio/readbyte_spec.rb +22 -0
- data/spec/framework_spec/app/spec/library/stringio/readchar_spec.rb +20 -0
- data/spec/framework_spec/app/spec/library/stringio/readline_spec.rb +128 -0
- data/spec/framework_spec/app/spec/library/stringio/readlines_spec.rb +94 -0
- data/spec/framework_spec/app/spec/library/stringio/readpartial_spec.rb +83 -0
- data/spec/framework_spec/app/spec/library/stringio/reopen_spec.rb +304 -0
- data/spec/framework_spec/app/spec/library/stringio/rewind_spec.rb +24 -0
- data/spec/framework_spec/app/spec/library/stringio/seek_spec.rb +76 -0
- data/spec/framework_spec/app/spec/library/stringio/set_encoding.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/codepoints.rb +45 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/each.rb +115 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/each_byte.rb +60 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/each_char.rb +50 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/eof.rb +24 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/getc.rb +43 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/isatty.rb +5 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/length.rb +5 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/read.rb +125 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/readchar.rb +29 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/tell.rb +12 -0
- data/spec/framework_spec/app/spec/library/stringio/shared/write.rb +87 -0
- data/spec/framework_spec/app/spec/library/stringio/size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/string_spec.rb +50 -0
- data/spec/framework_spec/app/spec/library/stringio/stringio_spec.rb +9 -0
- data/spec/framework_spec/app/spec/library/stringio/sync_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringio/sysread_spec.rb +54 -0
- data/spec/framework_spec/app/spec/library/stringio/syswrite_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringio/tell_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/truncate_spec.rb +70 -0
- data/spec/framework_spec/app/spec/library/stringio/tty_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringio/ungetc_spec.rb +99 -0
- data/spec/framework_spec/app/spec/library/stringio/write_spec.rb +19 -0
- data/spec/framework_spec/app/spec/library/stringscanner/append_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/beginning_of_line_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/bol_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/check_spec.rb +16 -0
- data/spec/framework_spec/app/spec/library/stringscanner/check_until_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringscanner/clear_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/concat_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/dup_spec.rb +39 -0
- data/spec/framework_spec/app/spec/library/stringscanner/element_reference_spec.rb +49 -0
- data/spec/framework_spec/app/spec/library/stringscanner/empty_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/eos_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/exist_spec.rb +24 -0
- data/spec/framework_spec/app/spec/library/stringscanner/get_byte_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/getbyte_spec.rb +29 -0
- data/spec/framework_spec/app/spec/library/stringscanner/getch_spec.rb +44 -0
- data/spec/framework_spec/app/spec/library/stringscanner/initialize_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/inspect_spec.rb +20 -0
- data/spec/framework_spec/app/spec/library/stringscanner/match_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/matched_size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/matched_spec.rb +41 -0
- data/spec/framework_spec/app/spec/library/stringscanner/matchedsize_spec.rb +27 -0
- data/spec/framework_spec/app/spec/library/stringscanner/must_C_version_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringscanner/peek_spec.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringscanner/peep_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/pointer_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/pos_spec.rb +11 -0
- data/spec/framework_spec/app/spec/library/stringscanner/post_match_spec.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/pre_match_spec.rb +41 -0
- data/spec/framework_spec/app/spec/library/stringscanner/reset_spec.rb +15 -0
- data/spec/framework_spec/app/spec/library/stringscanner/rest_size_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/rest_spec.rb +48 -0
- data/spec/framework_spec/app/spec/library/stringscanner/restsize_spec.rb +26 -0
- data/spec/framework_spec/app/spec/library/stringscanner/scan_full_spec.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringscanner/scan_spec.rb +43 -0
- data/spec/framework_spec/app/spec/library/stringscanner/scan_until_spec.rb +23 -0
- data/spec/framework_spec/app/spec/library/stringscanner/search_full_spec.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/bol.rb +25 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/concat.rb +30 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/eos.rb +17 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/extract_range.rb +22 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/extract_range_matched.rb +22 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/get_byte.rb +28 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/matched_size.rb +21 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/peek.rb +44 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/pos.rb +52 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/rest_size.rb +18 -0
- data/spec/framework_spec/app/spec/library/stringscanner/shared/terminate.rb +8 -0
- data/spec/framework_spec/app/spec/library/stringscanner/skip_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/stringscanner/skip_until_spec.rb +18 -0
- data/spec/framework_spec/app/spec/library/stringscanner/string_spec.rb +40 -0
- data/spec/framework_spec/app/spec/library/stringscanner/terminate_spec.rb +7 -0
- data/spec/framework_spec/app/spec/library/stringscanner/unscan_spec.rb +29 -0
- data/spec/framework_spec/app/spec/shared/complex/Complex.rb +76 -0
- data/spec/framework_spec/app/spec/shared/complex/abs.rb +12 -0
- data/spec/framework_spec/app/spec/shared/complex/abs2.rb +12 -0
- data/spec/framework_spec/app/spec/shared/complex/arg.rb +9 -0
- data/spec/framework_spec/app/spec/shared/complex/coerce.rb +41 -0
- data/spec/framework_spec/app/spec/shared/complex/conjugate.rb +8 -0
- data/spec/framework_spec/app/spec/shared/complex/denominator.rb +13 -0
- data/spec/framework_spec/app/spec/shared/complex/divide.rb +57 -0
- data/spec/framework_spec/app/spec/shared/complex/equal_value.rb +64 -0
- data/spec/framework_spec/app/spec/shared/complex/exponent.rb +54 -0
- data/spec/framework_spec/app/spec/shared/complex/hash.rb +16 -0
- data/spec/framework_spec/app/spec/shared/complex/image.rb +10 -0
- data/spec/framework_spec/app/spec/shared/complex/inspect.rb +29 -0
- data/spec/framework_spec/app/spec/shared/complex/minus.rb +25 -0
- data/spec/framework_spec/app/spec/shared/complex/modulo.rb +25 -0
- data/spec/framework_spec/app/spec/shared/complex/multiply.rb +24 -0
- data/spec/framework_spec/app/spec/shared/complex/numerator.rb +19 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/arg.rb +43 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/conj.rb +26 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/imag.rb +26 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/polar.rb +52 -0
- data/spec/framework_spec/app/spec/shared/complex/numeric/real.rb +30 -0
- data/spec/framework_spec/app/spec/shared/complex/plus.rb +25 -0
- data/spec/framework_spec/app/spec/shared/complex/polar.rb +22 -0
- data/spec/framework_spec/app/spec/shared/complex/real.rb +8 -0
- data/spec/framework_spec/app/spec/shared/complex/rect.rb +45 -0
- data/spec/framework_spec/app/spec/shared/complex/to_s.rb +39 -0
- data/spec/framework_spec/app/spec/shared/continuation/call.rb +76 -0
- data/spec/framework_spec/app/spec/shared/continuation/new.rb +5 -0
- data/spec/framework_spec/app/spec/shared/enumerator/each.rb +45 -0
- data/spec/framework_spec/app/spec/shared/enumerator/enum_cons.rb +12 -0
- data/spec/framework_spec/app/spec/shared/enumerator/enum_for.rb +15 -0
- data/spec/framework_spec/app/spec/shared/enumerator/new.rb +42 -0
- data/spec/framework_spec/app/spec/shared/enumerator/next.rb +30 -0
- data/spec/framework_spec/app/spec/shared/enumerator/rewind.rb +32 -0
- data/spec/framework_spec/app/spec/shared/enumerator/with_index.rb +35 -0
- data/spec/framework_spec/app/spec/shared/enumerator/with_object.rb +19 -0
- data/spec/framework_spec/app/spec/shared/fiber/resume.rb +65 -0
- data/spec/framework_spec/app/spec/shared/file/blockdev.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/chardev.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/directory.rb +59 -21
- data/spec/framework_spec/app/spec/shared/file/executable.rb +10 -14
- data/spec/framework_spec/app/spec/shared/file/executable_real.rb +15 -9
- data/spec/framework_spec/app/spec/shared/file/exist.rb +9 -3
- data/spec/framework_spec/app/spec/shared/file/file.rb +12 -10
- data/spec/framework_spec/app/spec/shared/file/grpowned.rb +12 -6
- data/spec/framework_spec/app/spec/shared/file/identical.rb +21 -16
- data/spec/framework_spec/app/spec/shared/file/owned.rb +4 -0
- data/spec/framework_spec/app/spec/shared/file/pipe.rb +4 -0
- data/spec/framework_spec/app/spec/shared/file/readable.rb +16 -13
- data/spec/framework_spec/app/spec/shared/file/readable_real.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/size.rb +107 -15
- data/spec/framework_spec/app/spec/shared/file/socket.rb +4 -0
- data/spec/framework_spec/app/spec/shared/file/sticky.rb +30 -0
- data/spec/framework_spec/app/spec/shared/file/symlink.rb +20 -14
- data/spec/framework_spec/app/spec/shared/file/world_readable.rb +48 -0
- data/spec/framework_spec/app/spec/shared/file/world_writable.rb +48 -0
- data/spec/framework_spec/app/spec/shared/file/writable.rb +10 -7
- data/spec/framework_spec/app/spec/shared/file/writable_real.rb +7 -1
- data/spec/framework_spec/app/spec/shared/file/zero.rb +16 -17
- data/spec/framework_spec/app/spec/shared/io/putc.rb +57 -0
- data/spec/framework_spec/app/spec/shared/kernel/callcc.rb +68 -0
- data/spec/framework_spec/app/spec/shared/kernel/method_missing.rb +60 -0
- data/spec/framework_spec/app/spec/shared/kernel/singleton_method_added.rb +7 -0
- data/spec/framework_spec/app/spec/shared/kernel/singleton_method_removed.rb +7 -0
- data/spec/framework_spec/app/spec/shared/kernel/singleton_method_undefined.rb +7 -0
- data/spec/framework_spec/app/spec/shared/math/atanh.rb +142 -0
- data/spec/framework_spec/app/spec/shared/process/times.rb +8 -8
- data/spec/framework_spec/app/spec/shared/rational/Rational.rb +113 -0
- data/spec/framework_spec/app/spec/shared/rational/abs.rb +12 -0
- data/spec/framework_spec/app/spec/shared/rational/ceil.rb +41 -0
- data/spec/framework_spec/app/spec/shared/rational/coerce.rb +41 -0
- data/spec/framework_spec/app/spec/shared/rational/comparison.rb +86 -0
- data/spec/framework_spec/app/spec/shared/rational/denominator.rb +15 -0
- data/spec/framework_spec/app/spec/shared/rational/div.rb +81 -0
- data/spec/framework_spec/app/spec/shared/rational/divide.rb +72 -0
- data/spec/framework_spec/app/spec/shared/rational/divmod.rb +53 -0
- data/spec/framework_spec/app/spec/shared/rational/equal_value.rb +62 -0
- data/spec/framework_spec/app/spec/shared/rational/exponent.rb +144 -0
- data/spec/framework_spec/app/spec/shared/rational/fdiv.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/floor.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/hash.rb +10 -0
- data/spec/framework_spec/app/spec/shared/rational/initialize.rb +25 -0
- data/spec/framework_spec/app/spec/shared/rational/inspect.rb +24 -0
- data/spec/framework_spec/app/spec/shared/rational/marshal_dump.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/marshal_load.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/minus.rb +49 -0
- data/spec/framework_spec/app/spec/shared/rational/modulo.rb +52 -0
- data/spec/framework_spec/app/spec/shared/rational/multiply.rb +63 -0
- data/spec/framework_spec/app/spec/shared/rational/new.rb +21 -0
- data/spec/framework_spec/app/spec/shared/rational/numerator.rb +11 -0
- data/spec/framework_spec/app/spec/shared/rational/plus.rb +49 -0
- data/spec/framework_spec/app/spec/shared/rational/quo.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/reduce.rb +31 -0
- data/spec/framework_spec/app/spec/shared/rational/remainder.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/round.rb +5 -0
- data/spec/framework_spec/app/spec/shared/rational/to_f.rb +11 -0
- data/spec/framework_spec/app/spec/shared/rational/to_i.rb +15 -0
- data/spec/framework_spec/app/spec/shared/rational/to_r.rb +14 -0
- data/spec/framework_spec/app/spec/shared/rational/to_s.rb +24 -0
- data/spec/framework_spec/app/spec/shared/rational/truncate.rb +5 -0
- data/spec/framework_spec/app/spec/spec_helper.rb +1 -37
- data/spec/framework_spec/app/spec/version.rb +3 -0
- data/spec/framework_spec/app/spec_runner.rb +50 -80
- data/spec/framework_spec/build.yml +3 -4
- data/spec/framework_spec/rhoconfig.txt +4 -1
- data/spec/phone_spec/app/spec/contacts_spec.rb +8 -4
- data/spec/phone_spec/app/spec/date_spec.rb +17 -0
- data/spec/phone_spec/app/spec/rhom_object_spec.rb +11 -0
- data/spec/phone_spec/app/spec/syncengine_spec.rb +63 -1
- data/spec/phone_spec/app/spec/uri_spec.rb +2 -0
- data/spec/phone_spec/app/spec/xml_spec.rb +10 -3
- data/spec/phone_spec/app/spec_runner.rb +1 -1
- data/spec/phone_spec/build.yml +2 -2
- data/spec/phone_spec/rhoconfig.txt +1 -0
- metadata +1059 -91
- data/Manifest.txt +0 -6338
- data/doc/rhodes-api/alert-api.txt +0 -102
- data/lib/extensions/mspec/mspec/fileutils.rb +0 -1589
- data/lib/extensions/mspec/mspec/helpers/bignum.rb +0 -5
- data/lib/extensions/mspec/mspec/helpers/infinity.rb +0 -5
- data/lib/extensions/mspec/mspec/helpers/metaclass.rb +0 -7
- data/lib/extensions/mspec/mspec/helpers/nan.rb +0 -5
- data/platform/shared/ruby/blockinlining.c +0 -464
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b2.min.css +0 -8
- data/res/generators/templates/application/public/jqmobile/jquery.mobile-1.0b2.min.js +0 -155
- data/res/generators/templates/application/public/jquery/jquery-1.6.2.min.js +0 -18
- data/spec/framework_spec/app/spec/core/basicobject/basic_object_class_spec.rb +0 -18
- data/spec/framework_spec/app/spec/core/basicobject/basic_object_spec.rb +0 -23
- data/spec/framework_spec/app/spec/core/basicobject/basic_object_subclass_spec.rb +0 -25
- data/spec/framework_spec/app/spec/core/basicobject/metaclass_spec.rb +0 -27
- data/spec/framework_spec/app/spec/core/basicobject/remove_method_missing.rb +0 -14
- data/spec/framework_spec/app/spec/core/basicobject/shared/behavior.rb +0 -16
- data/spec/framework_spec/app/spec/core/builtin_constants/builtin_constants.rb +0 -13
- data/spec/framework_spec/app/spec/core/continuation/continuation_spec.rb +0 -109
- data/spec/framework_spec/app/spec/core/dir/new_spec.rb +0 -2
- data/spec/framework_spec/app/spec/core/enumerable/each_spec.rb +0 -14
- data/spec/framework_spec/app/spec/core/fiber/alive_spec.rb +0 -54
- data/spec/framework_spec/app/spec/core/fiber/current_spec.rb +0 -63
- data/spec/framework_spec/app/spec/core/fiber/shared/resume.rb +0 -71
- data/spec/framework_spec/app/spec/core/fiber/transfer_spec.rb +0 -45
- data/spec/framework_spec/app/spec/core/io/data/data_spec.rb +0 -13
- data/spec/framework_spec/app/spec/core/io/data/fixtures/data1.rb +0 -3
- data/spec/framework_spec/app/spec/core/io/data/flock_spec.rb +0 -22
- data/spec/framework_spec/app/spec/core/io/fixtures/paragraphs.txt +0 -7
- data/spec/framework_spec/app/spec/core/io/fixtures/readlines.txt +0 -6
- data/spec/framework_spec/app/spec/core/kernel/__callee__spec.rb +0 -9
- data/spec/framework_spec/app/spec/core/kernel/__method__spec.rb +0 -9
- data/spec/framework_spec/app/spec/core/proc/fixtures/procs.rb +0 -5
- data/spec/framework_spec/app/spec/find_spec.rb +0 -56
- data/spec/framework_spec/app/spec/fixtures/load/load_spec +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec.rooby +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_1.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_10.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_2.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_3.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_4.rb +0 -12
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_5.rb +0 -2
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_6.rb +0 -2
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_7.rb +0 -2
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_8.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_9.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_wrap.rb +0 -7
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_wrap2.rb +0 -7
- data/spec/framework_spec/app/spec/fixtures/load/load_spec_wrap_2.rb +0 -7
- data/spec/framework_spec/app/spec/fixtures/matrix.rb +0 -5
- data/spec/framework_spec/app/spec/fixtures/require/masked_require_spec_2.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/masked_require_spec_3.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec.rooby +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec.rooby.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_1.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_10.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_2.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_3.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_4.rb +0 -12
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_6.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_7.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_8.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_9.rb +0 -1
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_raises.rb +0 -3
- data/spec/framework_spec/app/spec/fixtures/require/require_spec_recursive.rb +0 -2
- data/spec/framework_spec/app/spec/language/catch_spec.rb +0 -84
- data/spec/framework_spec/app/spec/language/eigenclass_spec.rb +0 -317
- data/spec/framework_spec/app/spec/language/else_spec.rb +0 -1
- data/spec/framework_spec/app/spec/language/method_spec.rb +0 -273
- data/spec/framework_spec/app/spec/language/versions/array_1.8.rb +0 -13
- data/spec/framework_spec/app/spec/language/versions/method_1.9.rb +0 -137
- data/spec/framework_spec/app/spec/language/versions/symbol_1.8.rb +0 -5
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
parse.y -
|
4
4
|
|
5
|
-
$Author:
|
5
|
+
$Author: yugui $
|
6
6
|
created at: Fri May 28 18:02:42 JST 1993
|
7
7
|
|
8
8
|
Copyright (C) 1993-2007 Yukihiro Matsumoto
|
@@ -26,6 +26,8 @@
|
|
26
26
|
#include <errno.h>
|
27
27
|
#include <ctype.h>
|
28
28
|
|
29
|
+
#define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
|
30
|
+
|
29
31
|
#define YYMALLOC(size) rb_parser_malloc(parser, size)
|
30
32
|
#define YYREALLOC(ptr, size) rb_parser_realloc(parser, ptr, size)
|
31
33
|
#define YYCALLOC(nelem, size) rb_parser_calloc(parser, nelem, size)
|
@@ -59,20 +61,18 @@ enum lex_state_e {
|
|
59
61
|
EXPR_BEG, /* ignore newline, +/- is a sign. */
|
60
62
|
EXPR_END, /* newline significant, +/- is an operator. */
|
61
63
|
EXPR_ENDARG, /* ditto, and unbound braces. */
|
64
|
+
EXPR_ENDFN, /* ditto, and unbound braces. */
|
62
65
|
EXPR_ARG, /* newline significant, +/- is an operator. */
|
63
66
|
EXPR_CMDARG, /* newline significant, +/- is an operator. */
|
64
67
|
EXPR_MID, /* newline significant, +/- is an operator. */
|
65
68
|
EXPR_FNAME, /* ignore newline, no reserved words. */
|
66
69
|
EXPR_DOT, /* right after `.' or `::', no reserved words. */
|
67
70
|
EXPR_CLASS, /* immediate after `class', no here document. */
|
68
|
-
EXPR_VALUE /* alike EXPR_BEG but label is disallowed. */
|
71
|
+
EXPR_VALUE, /* alike EXPR_BEG but label is disallowed. */
|
72
|
+
EXPR_MAX_STATE
|
69
73
|
};
|
70
74
|
|
71
|
-
|
72
|
-
typedef unsigned LONG_LONG stack_type;
|
73
|
-
# else
|
74
|
-
typedef unsigned long stack_type;
|
75
|
-
# endif
|
75
|
+
typedef VALUE stack_type;
|
76
76
|
|
77
77
|
# define BITSTACK_PUSH(stack, n) (stack = (stack<<1)|((n)&1))
|
78
78
|
# define BITSTACK_POP(stack) (stack = stack >> 1)
|
@@ -107,7 +107,6 @@ struct local_vars {
|
|
107
107
|
#define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
|
108
108
|
#define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
|
109
109
|
|
110
|
-
#ifndef RIPPER
|
111
110
|
static int
|
112
111
|
vtable_size(const struct vtable *tbl)
|
113
112
|
{
|
@@ -176,6 +175,7 @@ vtable_included(const struct vtable * tbl, ID id)
|
|
176
175
|
}
|
177
176
|
|
178
177
|
|
178
|
+
#ifndef RIPPER
|
179
179
|
typedef struct token_info {
|
180
180
|
const char *token;
|
181
181
|
int linenum;
|
@@ -225,7 +225,7 @@ struct parser_params {
|
|
225
225
|
int parser_heredoc_end;
|
226
226
|
int parser_command_start;
|
227
227
|
NODE *parser_deferred_nodes;
|
228
|
-
|
228
|
+
long parser_lex_gets_ptr;
|
229
229
|
VALUE (*parser_lex_gets)(struct parser_params*,VALUE);
|
230
230
|
struct local_vars *parser_lvtbl;
|
231
231
|
int parser_ruby__end__seen;
|
@@ -363,6 +363,7 @@ static NODE *arg_concat_gen(struct parser_params*,NODE*,NODE*);
|
|
363
363
|
#define arg_concat(h,t) arg_concat_gen(parser,h,t)
|
364
364
|
static NODE *literal_concat_gen(struct parser_params*,NODE*,NODE*);
|
365
365
|
#define literal_concat(h,t) literal_concat_gen(parser,h,t)
|
366
|
+
static int literal_concat0(struct parser_params *, VALUE, VALUE);
|
366
367
|
static NODE *new_evstr_gen(struct parser_params*,NODE*);
|
367
368
|
#define new_evstr(n) new_evstr_gen(parser,n)
|
368
369
|
static NODE *evstr2dstr_gen(struct parser_params*,NODE*);
|
@@ -376,8 +377,6 @@ static NODE *call_uni_op_gen(struct parser_params*,NODE*,ID);
|
|
376
377
|
|
377
378
|
static NODE *new_args_gen(struct parser_params*,NODE*,NODE*,ID,NODE*,ID);
|
378
379
|
#define new_args(f,o,r,p,b) new_args_gen(parser, f,o,r,p,b)
|
379
|
-
static void shadowing_lvar_gen(struct parser_params*,ID);
|
380
|
-
#define shadowing_lvar(name) shadowing_lvar_gen(parser, name)
|
381
380
|
|
382
381
|
static NODE *negate_lit(NODE*);
|
383
382
|
static NODE *ret_args_gen(struct parser_params*,NODE*);
|
@@ -390,8 +389,7 @@ static NODE *gettable_gen(struct parser_params*,ID);
|
|
390
389
|
#define gettable(id) gettable_gen(parser,id)
|
391
390
|
static NODE *assignable_gen(struct parser_params*,ID,NODE*);
|
392
391
|
#define assignable(id,node) assignable_gen(parser, id, node)
|
393
|
-
|
394
|
-
#define new_bv(id) new_bv_gen(parser, id)
|
392
|
+
|
395
393
|
static NODE *aryset_gen(struct parser_params*,NODE*,NODE*);
|
396
394
|
#define aryset(node1,node2) aryset_gen(parser, node1, node2)
|
397
395
|
static NODE *attrset_gen(struct parser_params*,NODE*,ID);
|
@@ -405,6 +403,46 @@ static NODE *node_assign_gen(struct parser_params*,NODE*,NODE*);
|
|
405
403
|
static NODE *match_op_gen(struct parser_params*,NODE*,NODE*);
|
406
404
|
#define match_op(node1,node2) match_op_gen(parser, node1, node2)
|
407
405
|
|
406
|
+
static ID *local_tbl_gen(struct parser_params*);
|
407
|
+
#define local_tbl() local_tbl_gen(parser)
|
408
|
+
|
409
|
+
static void fixup_nodes(NODE **);
|
410
|
+
|
411
|
+
extern int rb_dvar_defined(ID);
|
412
|
+
extern int rb_local_defined(ID);
|
413
|
+
extern int rb_parse_in_eval(void);
|
414
|
+
extern int rb_parse_in_main(void);
|
415
|
+
|
416
|
+
static VALUE reg_compile_gen(struct parser_params*, VALUE, int);
|
417
|
+
#define reg_compile(str,options) reg_compile_gen(parser, str, options)
|
418
|
+
static void reg_fragment_setenc_gen(struct parser_params*, VALUE, int);
|
419
|
+
#define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, str, options)
|
420
|
+
static int reg_fragment_check_gen(struct parser_params*, VALUE, int);
|
421
|
+
#define reg_fragment_check(str,options) reg_fragment_check_gen(parser, str, options)
|
422
|
+
static NODE *reg_named_capture_assign_gen(struct parser_params* parser, VALUE regexp, NODE *match);
|
423
|
+
#define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,regexp,match)
|
424
|
+
|
425
|
+
#define get_id(id) (id)
|
426
|
+
#define get_value(val) (val)
|
427
|
+
#else
|
428
|
+
#define remove_begin(node) (node)
|
429
|
+
#define rb_dvar_defined(id) 0
|
430
|
+
#define rb_local_defined(id) 0
|
431
|
+
static ID ripper_get_id(VALUE);
|
432
|
+
#define get_id(id) ripper_get_id(id)
|
433
|
+
static VALUE ripper_get_value(VALUE);
|
434
|
+
#define get_value(val) ripper_get_value(val)
|
435
|
+
static VALUE assignable_gen(struct parser_params*,VALUE);
|
436
|
+
#define assignable(lhs,node) assignable_gen(parser, lhs)
|
437
|
+
#endif /* !RIPPER */
|
438
|
+
|
439
|
+
static ID formal_argument_gen(struct parser_params*, ID);
|
440
|
+
#define formal_argument(id) formal_argument_gen(parser, id)
|
441
|
+
static ID shadowing_lvar_gen(struct parser_params*,ID);
|
442
|
+
#define shadowing_lvar(name) shadowing_lvar_gen(parser, name)
|
443
|
+
static void new_bv_gen(struct parser_params*,ID);
|
444
|
+
#define new_bv(id) new_bv_gen(parser, id)
|
445
|
+
|
408
446
|
static void local_push_gen(struct parser_params*,int);
|
409
447
|
#define local_push(top) local_push_gen(parser,top)
|
410
448
|
static void local_pop_gen(struct parser_params*);
|
@@ -415,15 +453,13 @@ static int arg_var_gen(struct parser_params*, ID);
|
|
415
453
|
#define arg_var(id) arg_var_gen(parser, id)
|
416
454
|
static int local_id_gen(struct parser_params*, ID);
|
417
455
|
#define local_id(id) local_id_gen(parser, id)
|
418
|
-
static ID *local_tbl_gen(struct parser_params*);
|
419
|
-
#define local_tbl() local_tbl_gen(parser)
|
420
456
|
static ID internal_id_gen(struct parser_params*);
|
421
457
|
#define internal_id() internal_id_gen(parser)
|
422
458
|
|
423
|
-
static
|
459
|
+
static const struct vtable *dyna_push_gen(struct parser_params *);
|
424
460
|
#define dyna_push() dyna_push_gen(parser)
|
425
|
-
static void dyna_pop_gen(struct parser_params*);
|
426
|
-
#define dyna_pop() dyna_pop_gen(parser)
|
461
|
+
static void dyna_pop_gen(struct parser_params*, const struct vtable *);
|
462
|
+
#define dyna_pop(node) dyna_pop_gen(parser, node)
|
427
463
|
static int dyna_in_block_gen(struct parser_params*);
|
428
464
|
#define dyna_in_block() dyna_in_block_gen(parser)
|
429
465
|
#define dyna_var(id) local_var(id)
|
@@ -432,25 +468,6 @@ static int dvar_defined_gen(struct parser_params*,ID);
|
|
432
468
|
static int dvar_curr_gen(struct parser_params*,ID);
|
433
469
|
#define dvar_curr(id) dvar_curr_gen(parser, id)
|
434
470
|
|
435
|
-
static void fixup_nodes(NODE **);
|
436
|
-
|
437
|
-
extern int rb_dvar_defined(ID);
|
438
|
-
extern int rb_local_defined(ID);
|
439
|
-
extern int rb_parse_in_eval(void);
|
440
|
-
extern int rb_parse_in_main(void);
|
441
|
-
|
442
|
-
static VALUE reg_compile_gen(struct parser_params*, VALUE, int);
|
443
|
-
#define reg_compile(str,options) reg_compile_gen(parser, str, options)
|
444
|
-
static void reg_fragment_setenc_gen(struct parser_params*, VALUE, int);
|
445
|
-
#define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, str, options)
|
446
|
-
static void reg_fragment_check_gen(struct parser_params*, VALUE, int);
|
447
|
-
#define reg_fragment_check(str,options) reg_fragment_check_gen(parser, str, options)
|
448
|
-
static NODE *reg_named_capture_assign_gen(struct parser_params* parser, VALUE regexp, NODE *match);
|
449
|
-
#define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,regexp,match)
|
450
|
-
int rb_enc_symname2_p(const char *, int, rb_encoding *);
|
451
|
-
#else
|
452
|
-
#define remove_begin(node) (node)
|
453
|
-
#endif /* !RIPPER */
|
454
471
|
static int lvar_defined_gen(struct parser_params*, ID);
|
455
472
|
#define lvar_defined(id) lvar_defined_gen(parser, id)
|
456
473
|
|
@@ -499,7 +516,7 @@ static VALUE ripper_dispatch5(struct parser_params*,ID,VALUE,VALUE,VALUE,VALUE,V
|
|
499
516
|
|
500
517
|
#define yyparse ripper_yyparse
|
501
518
|
|
502
|
-
|
519
|
+
#define ripper_intern(s) ID2SYM(rb_intern(s))
|
503
520
|
static VALUE ripper_id2sym(ID);
|
504
521
|
#ifdef __GNUC__
|
505
522
|
#define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
|
@@ -508,7 +525,6 @@ static VALUE ripper_id2sym(ID);
|
|
508
525
|
|
509
526
|
#define arg_new() dispatch0(args_new)
|
510
527
|
#define arg_add(l,a) dispatch2(args_add, l, a)
|
511
|
-
#define arg_prepend(l,a) dispatch2(args_prepend, l, a)
|
512
528
|
#define arg_add_star(l,a) dispatch2(args_add_star, l, a)
|
513
529
|
#define arg_add_block(l,b) dispatch2(args_add_block, l, b)
|
514
530
|
#define arg_add_optblock(l,b) ((b)==Qundef? l : dispatch2(args_add_block, l, b))
|
@@ -590,6 +606,11 @@ static void ripper_compile_error(struct parser_params*, const char *fmt, ...);
|
|
590
606
|
#ifndef RIPPER
|
591
607
|
static void token_info_push(struct parser_params*, const char *token);
|
592
608
|
static void token_info_pop(struct parser_params*, const char *token);
|
609
|
+
#define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, token) : (void)0)
|
610
|
+
#define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, token) : (void)0)
|
611
|
+
#else
|
612
|
+
#define token_info_push(token) /* nothing */
|
613
|
+
#define token_info_pop(token) /* nothing */
|
593
614
|
#endif
|
594
615
|
%}
|
595
616
|
|
@@ -601,6 +622,7 @@ static void token_info_pop(struct parser_params*, const char *token);
|
|
601
622
|
NODE *node;
|
602
623
|
ID id;
|
603
624
|
int num;
|
625
|
+
const struct vtable *vars;
|
604
626
|
}
|
605
627
|
|
606
628
|
/*%%%*/
|
@@ -664,7 +686,7 @@ static void token_info_pop(struct parser_params*, const char *token);
|
|
664
686
|
%token <num> tREGEXP_END
|
665
687
|
|
666
688
|
%type <node> singleton strings string string1 xstring regexp
|
667
|
-
%type <node> string_contents xstring_contents string_content
|
689
|
+
%type <node> string_contents xstring_contents regexp_contents string_content
|
668
690
|
%type <node> words qwords word_list qword_list word
|
669
691
|
%type <node> literal numeric dsym cpath
|
670
692
|
%type <node> top_compstmt top_stmts top_stmt
|
@@ -751,7 +773,6 @@ static void token_info_pop(struct parser_params*, const char *token);
|
|
751
773
|
%nonassoc idRespond_to
|
752
774
|
%nonassoc idIFUNC
|
753
775
|
%nonassoc idCFUNC
|
754
|
-
%nonassoc idThrowState
|
755
776
|
%nonassoc id_core_set_method_alias
|
756
777
|
%nonassoc id_core_set_variable_alias
|
757
778
|
%nonassoc id_core_undef_method
|
@@ -765,8 +786,9 @@ static void token_info_pop(struct parser_params*, const char *token);
|
|
765
786
|
program : {
|
766
787
|
lex_state = EXPR_BEG;
|
767
788
|
/*%%%*/
|
768
|
-
local_push(compile_for_eval);
|
789
|
+
local_push(compile_for_eval || rb_parse_in_main());
|
769
790
|
/*%
|
791
|
+
local_push(0);
|
770
792
|
%*/
|
771
793
|
}
|
772
794
|
top_compstmt
|
@@ -784,11 +806,11 @@ program : {
|
|
784
806
|
}
|
785
807
|
}
|
786
808
|
ruby_eval_tree = NEW_SCOPE(0, block_append(ruby_eval_tree, $2));
|
787
|
-
local_pop();
|
788
809
|
/*%
|
789
810
|
$$ = $2;
|
790
811
|
parser->result = dispatch1(program, $$);
|
791
812
|
%*/
|
813
|
+
local_pop();
|
792
814
|
}
|
793
815
|
;
|
794
816
|
|
@@ -883,7 +905,7 @@ bodystmt : compstmt
|
|
883
905
|
}
|
884
906
|
fixpos($$, $1);
|
885
907
|
/*%
|
886
|
-
$$ = dispatch4(
|
908
|
+
$$ = dispatch4(bodystmt,
|
887
909
|
escape_Qundef($1),
|
888
910
|
escape_Qundef($2),
|
889
911
|
escape_Qundef($3),
|
@@ -953,10 +975,10 @@ stmt : keyword_alias fitem {lex_state = EXPR_FNAME;} fitem
|
|
953
975
|
| keyword_alias tGVAR tBACK_REF
|
954
976
|
{
|
955
977
|
/*%%%*/
|
956
|
-
char buf[
|
957
|
-
|
958
|
-
|
959
|
-
$$ = NEW_VALIAS($2,
|
978
|
+
char buf[2];
|
979
|
+
buf[0] = '$';
|
980
|
+
buf[1] = (char)$3->nd_nth;
|
981
|
+
$$ = NEW_VALIAS($2, rb_intern2(buf, 2));
|
960
982
|
/*%
|
961
983
|
$$ = dispatch2(var_alias, $2, $3);
|
962
984
|
%*/
|
@@ -1099,7 +1121,7 @@ stmt : keyword_alias fitem {lex_state = EXPR_FNAME;} fitem
|
|
1099
1121
|
|
1100
1122
|
value_expr($6);
|
1101
1123
|
if (!$3) $3 = NEW_ZARRAY();
|
1102
|
-
args = arg_concat($
|
1124
|
+
args = arg_concat($3, $6);
|
1103
1125
|
if ($5 == tOROP) {
|
1104
1126
|
$5 = 0;
|
1105
1127
|
}
|
@@ -1147,6 +1169,17 @@ stmt : keyword_alias fitem {lex_state = EXPR_FNAME;} fitem
|
|
1147
1169
|
$$ = dispatch3(opassign, $$, $4, $5);
|
1148
1170
|
%*/
|
1149
1171
|
}
|
1172
|
+
| primary_value tCOLON2 tCONSTANT tOP_ASGN command_call
|
1173
|
+
{
|
1174
|
+
/*%%%*/
|
1175
|
+
yyerror("constant re-assignment");
|
1176
|
+
$$ = 0;
|
1177
|
+
/*%
|
1178
|
+
$$ = dispatch2(const_path_field, $1, $3);
|
1179
|
+
$$ = dispatch3(opassign, $$, $4, $5);
|
1180
|
+
$$ = dispatch1(assign_error, $$);
|
1181
|
+
%*/
|
1182
|
+
}
|
1150
1183
|
| primary_value tCOLON2 tIDENTIFIER tOP_ASGN command_call
|
1151
1184
|
{
|
1152
1185
|
/*%%%*/
|
@@ -1254,30 +1287,6 @@ expr_value : expr
|
|
1254
1287
|
|
1255
1288
|
command_call : command
|
1256
1289
|
| block_command
|
1257
|
-
| keyword_return call_args
|
1258
|
-
{
|
1259
|
-
/*%%%*/
|
1260
|
-
$$ = NEW_RETURN(ret_args($2));
|
1261
|
-
/*%
|
1262
|
-
$$ = dispatch1(return, $2);
|
1263
|
-
%*/
|
1264
|
-
}
|
1265
|
-
| keyword_break call_args
|
1266
|
-
{
|
1267
|
-
/*%%%*/
|
1268
|
-
$$ = NEW_BREAK(ret_args($2));
|
1269
|
-
/*%
|
1270
|
-
$$ = dispatch1(break, $2);
|
1271
|
-
%*/
|
1272
|
-
}
|
1273
|
-
| keyword_next call_args
|
1274
|
-
{
|
1275
|
-
/*%%%*/
|
1276
|
-
$$ = NEW_NEXT(ret_args($2));
|
1277
|
-
/*%
|
1278
|
-
$$ = dispatch1(next, $2);
|
1279
|
-
%*/
|
1280
|
-
}
|
1281
1290
|
;
|
1282
1291
|
|
1283
1292
|
block_command : block_call
|
@@ -1303,8 +1312,8 @@ block_command : block_call
|
|
1303
1312
|
|
1304
1313
|
cmd_brace_block : tLBRACE_ARG
|
1305
1314
|
{
|
1315
|
+
$<vars>1 = dyna_push();
|
1306
1316
|
/*%%%*/
|
1307
|
-
dyna_push();
|
1308
1317
|
$<num>$ = ruby_sourceline;
|
1309
1318
|
/*%
|
1310
1319
|
%*/
|
@@ -1316,10 +1325,10 @@ cmd_brace_block : tLBRACE_ARG
|
|
1316
1325
|
/*%%%*/
|
1317
1326
|
$$ = NEW_ITER($3,$4);
|
1318
1327
|
nd_set_line($$, $<num>2);
|
1319
|
-
dyna_pop();
|
1320
1328
|
/*%
|
1321
1329
|
$$ = dispatch2(brace_block, escape_Qundef($3), $4);
|
1322
1330
|
%*/
|
1331
|
+
dyna_pop($<vars>1);
|
1323
1332
|
}
|
1324
1333
|
;
|
1325
1334
|
|
@@ -1404,6 +1413,30 @@ command : operation command_args %prec tLOWEST
|
|
1404
1413
|
$$ = dispatch1(yield, $2);
|
1405
1414
|
%*/
|
1406
1415
|
}
|
1416
|
+
| keyword_return call_args
|
1417
|
+
{
|
1418
|
+
/*%%%*/
|
1419
|
+
$$ = NEW_RETURN(ret_args($2));
|
1420
|
+
/*%
|
1421
|
+
$$ = dispatch1(return, $2);
|
1422
|
+
%*/
|
1423
|
+
}
|
1424
|
+
| keyword_break call_args
|
1425
|
+
{
|
1426
|
+
/*%%%*/
|
1427
|
+
$$ = NEW_BREAK(ret_args($2));
|
1428
|
+
/*%
|
1429
|
+
$$ = dispatch1(break, $2);
|
1430
|
+
%*/
|
1431
|
+
}
|
1432
|
+
| keyword_next call_args
|
1433
|
+
{
|
1434
|
+
/*%%%*/
|
1435
|
+
$$ = NEW_NEXT(ret_args($2));
|
1436
|
+
/*%
|
1437
|
+
$$ = dispatch1(next, $2);
|
1438
|
+
%*/
|
1439
|
+
}
|
1407
1440
|
;
|
1408
1441
|
|
1409
1442
|
mlhs : mlhs_basic
|
@@ -1457,7 +1490,8 @@ mlhs_basic : mlhs_head
|
|
1457
1490
|
/*%%%*/
|
1458
1491
|
$$ = NEW_MASGN($1, NEW_POSTARG($3,$5));
|
1459
1492
|
/*%
|
1460
|
-
|
1493
|
+
$1 = mlhs_add_star($1, $3);
|
1494
|
+
$$ = mlhs_add($1, $5);
|
1461
1495
|
%*/
|
1462
1496
|
}
|
1463
1497
|
| mlhs_head tSTAR
|
@@ -1473,7 +1507,8 @@ mlhs_basic : mlhs_head
|
|
1473
1507
|
/*%%%*/
|
1474
1508
|
$$ = NEW_MASGN($1, NEW_POSTARG(-1, $4));
|
1475
1509
|
/*%
|
1476
|
-
|
1510
|
+
$1 = mlhs_add_star($1, Qnil);
|
1511
|
+
$$ = mlhs_add($1, $4);
|
1477
1512
|
%*/
|
1478
1513
|
}
|
1479
1514
|
| tSTAR mlhs_node
|
@@ -1489,7 +1524,8 @@ mlhs_basic : mlhs_head
|
|
1489
1524
|
/*%%%*/
|
1490
1525
|
$$ = NEW_MASGN(0, NEW_POSTARG($2,$4));
|
1491
1526
|
/*%
|
1492
|
-
|
1527
|
+
$2 = mlhs_add_star(mlhs_new(), $2);
|
1528
|
+
$$ = mlhs_add($2, $4);
|
1493
1529
|
%*/
|
1494
1530
|
}
|
1495
1531
|
| tSTAR
|
@@ -1506,6 +1542,7 @@ mlhs_basic : mlhs_head
|
|
1506
1542
|
$$ = NEW_MASGN(0, NEW_POSTARG(-1, $3));
|
1507
1543
|
/*%
|
1508
1544
|
$$ = mlhs_add_star(mlhs_new(), Qnil);
|
1545
|
+
$$ = mlhs_add($$, $3);
|
1509
1546
|
%*/
|
1510
1547
|
}
|
1511
1548
|
;
|
@@ -1559,11 +1596,7 @@ mlhs_post : mlhs_item
|
|
1559
1596
|
|
1560
1597
|
mlhs_node : variable
|
1561
1598
|
{
|
1562
|
-
/*%%%*/
|
1563
1599
|
$$ = assignable($1, 0);
|
1564
|
-
/*%
|
1565
|
-
$$ = $1;
|
1566
|
-
%*/
|
1567
1600
|
}
|
1568
1601
|
| primary_value '[' opt_call_args rbracket
|
1569
1602
|
{
|
@@ -1633,10 +1666,11 @@ mlhs_node : variable
|
|
1633
1666
|
|
1634
1667
|
lhs : variable
|
1635
1668
|
{
|
1669
|
+
$$ = assignable($1, 0);
|
1636
1670
|
/*%%%*/
|
1637
|
-
if (
|
1671
|
+
if (!$$) $$ = NEW_BEGIN(0);
|
1638
1672
|
/*%
|
1639
|
-
$$ = dispatch1(var_field,
|
1673
|
+
$$ = dispatch1(var_field, $$);
|
1640
1674
|
%*/
|
1641
1675
|
}
|
1642
1676
|
| primary_value '[' opt_call_args rbracket
|
@@ -1750,21 +1784,15 @@ fname : tIDENTIFIER
|
|
1750
1784
|
| tFID
|
1751
1785
|
| op
|
1752
1786
|
{
|
1753
|
-
|
1754
|
-
lex_state = EXPR_END;
|
1787
|
+
lex_state = EXPR_ENDFN;
|
1755
1788
|
$$ = $1;
|
1756
|
-
/*%
|
1757
|
-
lex_state = EXPR_END;
|
1758
|
-
$$ = $1;
|
1759
|
-
%*/
|
1760
1789
|
}
|
1761
1790
|
| reswords
|
1762
1791
|
{
|
1792
|
+
lex_state = EXPR_ENDFN;
|
1763
1793
|
/*%%%*/
|
1764
|
-
lex_state = EXPR_END;
|
1765
1794
|
$$ = $<id>1;
|
1766
1795
|
/*%
|
1767
|
-
lex_state = EXPR_END;
|
1768
1796
|
$$ = $1;
|
1769
1797
|
%*/
|
1770
1798
|
}
|
@@ -1934,7 +1962,12 @@ arg : lhs '=' arg
|
|
1934
1962
|
|
1935
1963
|
value_expr($6);
|
1936
1964
|
if (!$3) $3 = NEW_ZARRAY();
|
1937
|
-
|
1965
|
+
if (nd_type($3) == NODE_BLOCK_PASS) {
|
1966
|
+
args = NEW_ARGSCAT($3, $6);
|
1967
|
+
}
|
1968
|
+
else {
|
1969
|
+
args = arg_concat($3, $6);
|
1970
|
+
}
|
1938
1971
|
if ($5 == tOROP) {
|
1939
1972
|
$5 = 0;
|
1940
1973
|
}
|
@@ -2379,6 +2412,7 @@ opt_call_args : none
|
|
2379
2412
|
call_args : command
|
2380
2413
|
{
|
2381
2414
|
/*%%%*/
|
2415
|
+
value_expr($1);
|
2382
2416
|
$$ = NEW_LIST($1);
|
2383
2417
|
/*%
|
2384
2418
|
$$ = arg_add(arg_new(), $1);
|
@@ -2421,13 +2455,13 @@ call_args : command
|
|
2421
2455
|
;
|
2422
2456
|
|
2423
2457
|
command_args : {
|
2424
|
-
$<
|
2458
|
+
$<val>$ = cmdarg_stack;
|
2425
2459
|
CMDARG_PUSH(1);
|
2426
2460
|
}
|
2427
2461
|
call_args
|
2428
2462
|
{
|
2429
2463
|
/* CMDARG_POP() */
|
2430
|
-
cmdarg_stack = $<
|
2464
|
+
cmdarg_stack = $<val>1;
|
2431
2465
|
$$ = $2;
|
2432
2466
|
}
|
2433
2467
|
;
|
@@ -2856,8 +2890,8 @@ primary : literal
|
|
2856
2890
|
{
|
2857
2891
|
if (in_def || in_single)
|
2858
2892
|
yyerror("class definition in method body");
|
2859
|
-
/*%%%*/
|
2860
2893
|
local_push(0);
|
2894
|
+
/*%%%*/
|
2861
2895
|
$<num>$ = ruby_sourceline;
|
2862
2896
|
/*%
|
2863
2897
|
%*/
|
@@ -2868,10 +2902,10 @@ primary : literal
|
|
2868
2902
|
/*%%%*/
|
2869
2903
|
$$ = NEW_CLASS($2, $5, $3);
|
2870
2904
|
nd_set_line($$, $<num>4);
|
2871
|
-
local_pop();
|
2872
2905
|
/*%
|
2873
2906
|
$$ = dispatch3(class, $2, $3, $5);
|
2874
2907
|
%*/
|
2908
|
+
local_pop();
|
2875
2909
|
}
|
2876
2910
|
| k_class tLSHFT expr
|
2877
2911
|
{
|
@@ -2882,10 +2916,7 @@ primary : literal
|
|
2882
2916
|
{
|
2883
2917
|
$<num>$ = in_single;
|
2884
2918
|
in_single = 0;
|
2885
|
-
/*%%%*/
|
2886
2919
|
local_push(0);
|
2887
|
-
/*%
|
2888
|
-
%*/
|
2889
2920
|
}
|
2890
2921
|
bodystmt
|
2891
2922
|
k_end
|
@@ -2893,10 +2924,10 @@ primary : literal
|
|
2893
2924
|
/*%%%*/
|
2894
2925
|
$$ = NEW_SCLASS($3, $7);
|
2895
2926
|
fixpos($$, $3);
|
2896
|
-
local_pop();
|
2897
2927
|
/*%
|
2898
2928
|
$$ = dispatch2(sclass, $3, $7);
|
2899
2929
|
%*/
|
2930
|
+
local_pop();
|
2900
2931
|
in_def = $<num>4;
|
2901
2932
|
in_single = $<num>6;
|
2902
2933
|
}
|
@@ -2904,8 +2935,8 @@ primary : literal
|
|
2904
2935
|
{
|
2905
2936
|
if (in_def || in_single)
|
2906
2937
|
yyerror("module definition in method body");
|
2907
|
-
/*%%%*/
|
2908
2938
|
local_push(0);
|
2939
|
+
/*%%%*/
|
2909
2940
|
$<num>$ = ruby_sourceline;
|
2910
2941
|
/*%
|
2911
2942
|
%*/
|
@@ -2916,20 +2947,17 @@ primary : literal
|
|
2916
2947
|
/*%%%*/
|
2917
2948
|
$$ = NEW_MODULE($2, $4);
|
2918
2949
|
nd_set_line($$, $<num>3);
|
2919
|
-
local_pop();
|
2920
2950
|
/*%
|
2921
2951
|
$$ = dispatch2(module, $2, $4);
|
2922
2952
|
%*/
|
2953
|
+
local_pop();
|
2923
2954
|
}
|
2924
2955
|
| k_def fname
|
2925
2956
|
{
|
2926
2957
|
$<id>$ = cur_mid;
|
2927
2958
|
cur_mid = $2;
|
2928
2959
|
in_def++;
|
2929
|
-
/*%%%*/
|
2930
2960
|
local_push(0);
|
2931
|
-
/*%
|
2932
|
-
%*/
|
2933
2961
|
}
|
2934
2962
|
f_arglist
|
2935
2963
|
bodystmt
|
@@ -2939,23 +2967,19 @@ primary : literal
|
|
2939
2967
|
NODE *body = remove_begin($5);
|
2940
2968
|
reduce_nodes(&body);
|
2941
2969
|
$$ = NEW_DEFN($2, $4, body, NOEX_PRIVATE);
|
2942
|
-
|
2943
|
-
fixpos($$->nd_defn, $4);
|
2944
|
-
local_pop();
|
2970
|
+
nd_set_line($$, $<num>1);
|
2945
2971
|
/*%
|
2946
2972
|
$$ = dispatch3(def, $2, $4, $5);
|
2947
2973
|
%*/
|
2974
|
+
local_pop();
|
2948
2975
|
in_def--;
|
2949
2976
|
cur_mid = $<id>3;
|
2950
2977
|
}
|
2951
2978
|
| k_def singleton dot_or_colon {lex_state = EXPR_FNAME;} fname
|
2952
2979
|
{
|
2953
2980
|
in_single++;
|
2954
|
-
lex_state =
|
2955
|
-
/*%%%*/
|
2981
|
+
lex_state = EXPR_ENDFN; /* force for args */
|
2956
2982
|
local_push(0);
|
2957
|
-
/*%
|
2958
|
-
%*/
|
2959
2983
|
}
|
2960
2984
|
f_arglist
|
2961
2985
|
bodystmt
|
@@ -2965,12 +2989,11 @@ primary : literal
|
|
2965
2989
|
NODE *body = remove_begin($8);
|
2966
2990
|
reduce_nodes(&body);
|
2967
2991
|
$$ = NEW_DEFS($2, $5, $7, body);
|
2968
|
-
|
2969
|
-
fixpos($$->nd_defn, $2);
|
2970
|
-
local_pop();
|
2992
|
+
nd_set_line($$, $<num>1);
|
2971
2993
|
/*%
|
2972
2994
|
$$ = dispatch5(defs, $2, $3, $5, $7, $8);
|
2973
2995
|
%*/
|
2996
|
+
local_pop();
|
2974
2997
|
in_single--;
|
2975
2998
|
}
|
2976
2999
|
| keyword_break
|
@@ -3021,80 +3044,73 @@ primary_value : primary
|
|
3021
3044
|
|
3022
3045
|
k_begin : keyword_begin
|
3023
3046
|
{
|
3024
|
-
|
3025
|
-
if (RTEST(ruby_verbose)) token_info_push(parser, "begin");
|
3026
|
-
#endif
|
3047
|
+
token_info_push("begin");
|
3027
3048
|
}
|
3049
|
+
;
|
3028
3050
|
|
3029
3051
|
k_if : keyword_if
|
3030
3052
|
{
|
3031
|
-
|
3032
|
-
if (RTEST(ruby_verbose)) token_info_push(parser, "if");
|
3033
|
-
#endif
|
3053
|
+
token_info_push("if");
|
3034
3054
|
}
|
3055
|
+
;
|
3035
3056
|
|
3036
3057
|
k_unless : keyword_unless
|
3037
3058
|
{
|
3038
|
-
|
3039
|
-
if (RTEST(ruby_verbose)) token_info_push(parser, "unless");
|
3040
|
-
#endif
|
3059
|
+
token_info_push("unless");
|
3041
3060
|
}
|
3061
|
+
;
|
3042
3062
|
|
3043
3063
|
k_while : keyword_while
|
3044
3064
|
{
|
3045
|
-
|
3046
|
-
if (RTEST(ruby_verbose)) token_info_push(parser, "while");
|
3047
|
-
#endif
|
3065
|
+
token_info_push("while");
|
3048
3066
|
}
|
3067
|
+
;
|
3049
3068
|
|
3050
3069
|
k_until : keyword_until
|
3051
3070
|
{
|
3052
|
-
|
3053
|
-
if (RTEST(ruby_verbose)) token_info_push(parser, "until");
|
3054
|
-
#endif
|
3071
|
+
token_info_push("until");
|
3055
3072
|
}
|
3073
|
+
;
|
3056
3074
|
|
3057
3075
|
k_case : keyword_case
|
3058
3076
|
{
|
3059
|
-
|
3060
|
-
if (RTEST(ruby_verbose)) token_info_push(parser, "case");
|
3061
|
-
#endif
|
3077
|
+
token_info_push("case");
|
3062
3078
|
}
|
3079
|
+
;
|
3063
3080
|
|
3064
3081
|
k_for : keyword_for
|
3065
3082
|
{
|
3066
|
-
|
3067
|
-
if (RTEST(ruby_verbose)) token_info_push(parser, "for");
|
3068
|
-
#endif
|
3083
|
+
token_info_push("for");
|
3069
3084
|
}
|
3085
|
+
;
|
3070
3086
|
|
3071
3087
|
k_class : keyword_class
|
3072
3088
|
{
|
3073
|
-
|
3074
|
-
if (RTEST(ruby_verbose)) token_info_push(parser, "class");
|
3075
|
-
#endif
|
3089
|
+
token_info_push("class");
|
3076
3090
|
}
|
3091
|
+
;
|
3077
3092
|
|
3078
3093
|
k_module : keyword_module
|
3079
3094
|
{
|
3080
|
-
|
3081
|
-
if (RTEST(ruby_verbose)) token_info_push(parser, "module");
|
3082
|
-
#endif
|
3095
|
+
token_info_push("module");
|
3083
3096
|
}
|
3097
|
+
;
|
3084
3098
|
|
3085
3099
|
k_def : keyword_def
|
3086
3100
|
{
|
3087
|
-
|
3088
|
-
|
3089
|
-
|
3101
|
+
token_info_push("def");
|
3102
|
+
/*%%%*/
|
3103
|
+
$<num>$ = ruby_sourceline;
|
3104
|
+
/*%
|
3105
|
+
%*/
|
3090
3106
|
}
|
3107
|
+
;
|
3091
3108
|
|
3092
3109
|
k_end : keyword_end
|
3093
3110
|
{
|
3094
|
-
|
3095
|
-
if (RTEST(ruby_verbose)) token_info_pop(parser, "end"); /* POP */
|
3096
|
-
#endif
|
3111
|
+
token_info_pop("end");
|
3097
3112
|
}
|
3113
|
+
;
|
3098
3114
|
|
3099
3115
|
then : term
|
3100
3116
|
/*%c%*/
|
@@ -3148,10 +3164,10 @@ for_var : lhs
|
|
3148
3164
|
|
3149
3165
|
f_marg : f_norm_arg
|
3150
3166
|
{
|
3151
|
-
/*%%%*/
|
3152
3167
|
$$ = assignable($1, 0);
|
3168
|
+
/*%%%*/
|
3153
3169
|
/*%
|
3154
|
-
$$ = dispatch1(mlhs_paren,
|
3170
|
+
$$ = dispatch1(mlhs_paren, $$);
|
3155
3171
|
%*/
|
3156
3172
|
}
|
3157
3173
|
| tLPAREN f_margs rparen
|
@@ -3192,18 +3208,20 @@ f_margs : f_marg_list
|
|
3192
3208
|
}
|
3193
3209
|
| f_marg_list ',' tSTAR f_norm_arg
|
3194
3210
|
{
|
3211
|
+
$$ = assignable($4, 0);
|
3195
3212
|
/*%%%*/
|
3196
|
-
$$ = NEW_MASGN($1,
|
3213
|
+
$$ = NEW_MASGN($1, $$);
|
3197
3214
|
/*%
|
3198
|
-
$$ = mlhs_add_star($1,
|
3215
|
+
$$ = mlhs_add_star($1, $$);
|
3199
3216
|
%*/
|
3200
3217
|
}
|
3201
3218
|
| f_marg_list ',' tSTAR f_norm_arg ',' f_marg_list
|
3202
3219
|
{
|
3220
|
+
$$ = assignable($4, 0);
|
3203
3221
|
/*%%%*/
|
3204
|
-
$$ = NEW_MASGN($1, NEW_POSTARG(
|
3222
|
+
$$ = NEW_MASGN($1, NEW_POSTARG($$, $6));
|
3205
3223
|
/*%
|
3206
|
-
$$ = mlhs_add_star($1,
|
3224
|
+
$$ = mlhs_add_star($1, $$);
|
3207
3225
|
%*/
|
3208
3226
|
}
|
3209
3227
|
| f_marg_list ',' tSTAR
|
@@ -3224,21 +3242,23 @@ f_margs : f_marg_list
|
|
3224
3242
|
}
|
3225
3243
|
| tSTAR f_norm_arg
|
3226
3244
|
{
|
3245
|
+
$$ = assignable($2, 0);
|
3227
3246
|
/*%%%*/
|
3228
|
-
$$ = NEW_MASGN(0,
|
3247
|
+
$$ = NEW_MASGN(0, $$);
|
3229
3248
|
/*%
|
3230
|
-
$$ = mlhs_add_star(mlhs_new(),
|
3249
|
+
$$ = mlhs_add_star(mlhs_new(), $$);
|
3231
3250
|
%*/
|
3232
3251
|
}
|
3233
3252
|
| tSTAR f_norm_arg ',' f_marg_list
|
3234
3253
|
{
|
3254
|
+
$$ = assignable($2, 0);
|
3235
3255
|
/*%%%*/
|
3236
|
-
$$ = NEW_MASGN(0, NEW_POSTARG(
|
3256
|
+
$$ = NEW_MASGN(0, NEW_POSTARG($$, $4));
|
3237
3257
|
/*%
|
3238
3258
|
#if 0
|
3239
3259
|
TODO: Check me
|
3240
3260
|
#endif
|
3241
|
-
$$ = mlhs_add_star(
|
3261
|
+
$$ = mlhs_add_star($$, $4);
|
3242
3262
|
%*/
|
3243
3263
|
}
|
3244
3264
|
| tSTAR
|
@@ -3385,7 +3405,7 @@ block_param : f_arg ',' f_block_optarg ',' f_rest_arg opt_f_block_arg
|
|
3385
3405
|
opt_block_param : none
|
3386
3406
|
| block_param_def
|
3387
3407
|
{
|
3388
|
-
command_start =
|
3408
|
+
command_start = TRUE;
|
3389
3409
|
}
|
3390
3410
|
;
|
3391
3411
|
|
@@ -3433,7 +3453,7 @@ bv_decls : bvar
|
|
3433
3453
|
/*%c%*/
|
3434
3454
|
/*%c
|
3435
3455
|
{
|
3436
|
-
$$ =
|
3456
|
+
$$ = rb_ary_new3(1, $1);
|
3437
3457
|
}
|
3438
3458
|
%*/
|
3439
3459
|
| bv_decls ',' bvar
|
@@ -3447,10 +3467,10 @@ bv_decls : bvar
|
|
3447
3467
|
|
3448
3468
|
bvar : tIDENTIFIER
|
3449
3469
|
{
|
3470
|
+
new_bv(get_id($1));
|
3450
3471
|
/*%%%*/
|
3451
|
-
new_bv($1);
|
3452
3472
|
/*%
|
3453
|
-
$$ = $1;
|
3473
|
+
$$ = get_value($1);
|
3454
3474
|
%*/
|
3455
3475
|
}
|
3456
3476
|
| f_bad_arg
|
@@ -3460,24 +3480,23 @@ bvar : tIDENTIFIER
|
|
3460
3480
|
;
|
3461
3481
|
|
3462
3482
|
lambda : {
|
3463
|
-
|
3464
|
-
|
3465
|
-
|
3466
|
-
%*/
|
3483
|
+
$<vars>$ = dyna_push();
|
3484
|
+
}
|
3485
|
+
{
|
3467
3486
|
$<num>$ = lpar_beg;
|
3468
3487
|
lpar_beg = ++paren_nest;
|
3469
3488
|
}
|
3470
3489
|
f_larglist
|
3471
3490
|
lambda_body
|
3472
3491
|
{
|
3473
|
-
lpar_beg = $<num>
|
3492
|
+
lpar_beg = $<num>2;
|
3474
3493
|
/*%%%*/
|
3475
|
-
$$ = $
|
3476
|
-
$$->nd_body = NEW_SCOPE($
|
3477
|
-
dyna_pop();
|
3494
|
+
$$ = $3;
|
3495
|
+
$$->nd_body = NEW_SCOPE($3->nd_head, $4);
|
3478
3496
|
/*%
|
3479
|
-
$$ = dispatch2(lambda, $
|
3497
|
+
$$ = dispatch2(lambda, $3, $4);
|
3480
3498
|
%*/
|
3499
|
+
dyna_pop($<vars>1);
|
3481
3500
|
}
|
3482
3501
|
;
|
3483
3502
|
|
@@ -3511,8 +3530,8 @@ lambda_body : tLAMBEG compstmt '}'
|
|
3511
3530
|
|
3512
3531
|
do_block : keyword_do_block
|
3513
3532
|
{
|
3533
|
+
$<vars>1 = dyna_push();
|
3514
3534
|
/*%%%*/
|
3515
|
-
dyna_push();
|
3516
3535
|
$<num>$ = ruby_sourceline;
|
3517
3536
|
/*% %*/
|
3518
3537
|
}
|
@@ -3523,10 +3542,10 @@ do_block : keyword_do_block
|
|
3523
3542
|
/*%%%*/
|
3524
3543
|
$$ = NEW_ITER($3,$4);
|
3525
3544
|
nd_set_line($$, $<num>2);
|
3526
|
-
dyna_pop();
|
3527
3545
|
/*%
|
3528
3546
|
$$ = dispatch2(do_block, escape_Qundef($3), $4);
|
3529
3547
|
%*/
|
3548
|
+
dyna_pop($<vars>1);
|
3530
3549
|
}
|
3531
3550
|
;
|
3532
3551
|
|
@@ -3538,7 +3557,7 @@ block_call : command do_block
|
|
3538
3557
|
}
|
3539
3558
|
else {
|
3540
3559
|
block_dup_check($1->nd_args, $2);
|
3541
|
-
}
|
3560
|
+
}
|
3542
3561
|
$2->nd_iter = $1;
|
3543
3562
|
$$ = $2;
|
3544
3563
|
fixpos($$, $1);
|
@@ -3609,8 +3628,8 @@ method_call : operation paren_args
|
|
3609
3628
|
$$ = NEW_CALL($1, rb_intern("call"), $3);
|
3610
3629
|
fixpos($$, $1);
|
3611
3630
|
/*%
|
3612
|
-
$$ = dispatch3(call,
|
3613
|
-
|
3631
|
+
$$ = dispatch3(call, $1, ripper_id2sym('.'),
|
3632
|
+
ripper_intern("call"));
|
3614
3633
|
$$ = method_optarg($$, $3);
|
3615
3634
|
%*/
|
3616
3635
|
}
|
@@ -3620,8 +3639,8 @@ method_call : operation paren_args
|
|
3620
3639
|
$$ = NEW_CALL($1, rb_intern("call"), $3);
|
3621
3640
|
fixpos($$, $1);
|
3622
3641
|
/*%
|
3623
|
-
$$ = dispatch3(call,
|
3624
|
-
|
3642
|
+
$$ = dispatch3(call, $1, ripper_intern("::"),
|
3643
|
+
ripper_intern("call"));
|
3625
3644
|
$$ = method_optarg($$, $3);
|
3626
3645
|
%*/
|
3627
3646
|
}
|
@@ -3657,8 +3676,8 @@ method_call : operation paren_args
|
|
3657
3676
|
|
3658
3677
|
brace_block : '{'
|
3659
3678
|
{
|
3679
|
+
$<vars>1 = dyna_push();
|
3660
3680
|
/*%%%*/
|
3661
|
-
dyna_push();
|
3662
3681
|
$<num>$ = ruby_sourceline;
|
3663
3682
|
/*%
|
3664
3683
|
%*/
|
@@ -3669,17 +3688,15 @@ brace_block : '{'
|
|
3669
3688
|
/*%%%*/
|
3670
3689
|
$$ = NEW_ITER($3,$4);
|
3671
3690
|
nd_set_line($$, $<num>2);
|
3672
|
-
nd_set_line($$->nd_body, $<num>2);
|
3673
|
-
nd_set_line($$->nd_body->nd_body, $<num>2);
|
3674
|
-
dyna_pop();
|
3675
3691
|
/*%
|
3676
3692
|
$$ = dispatch2(brace_block, escape_Qundef($3), $4);
|
3677
3693
|
%*/
|
3694
|
+
dyna_pop($<vars>1);
|
3678
3695
|
}
|
3679
3696
|
| keyword_do
|
3680
3697
|
{
|
3698
|
+
$<vars>1 = dyna_push();
|
3681
3699
|
/*%%%*/
|
3682
|
-
dyna_push();
|
3683
3700
|
$<num>$ = ruby_sourceline;
|
3684
3701
|
/*%
|
3685
3702
|
%*/
|
@@ -3690,10 +3707,10 @@ brace_block : '{'
|
|
3690
3707
|
/*%%%*/
|
3691
3708
|
$$ = NEW_ITER($3,$4);
|
3692
3709
|
nd_set_line($$, $<num>2);
|
3693
|
-
dyna_pop();
|
3694
3710
|
/*%
|
3695
3711
|
$$ = dispatch2(do_block, escape_Qundef($3), $4);
|
3696
3712
|
%*/
|
3713
|
+
dyna_pop($<vars>1);
|
3697
3714
|
}
|
3698
3715
|
;
|
3699
3716
|
|
@@ -3839,7 +3856,7 @@ xstring : tXSTRING_BEG xstring_contents tSTRING_END
|
|
3839
3856
|
nd_set_type(node, NODE_DXSTR);
|
3840
3857
|
break;
|
3841
3858
|
default:
|
3842
|
-
node = NEW_NODE(NODE_DXSTR,
|
3859
|
+
node = NEW_NODE(NODE_DXSTR, Qnil, 1, NEW_LIST(node));
|
3843
3860
|
break;
|
3844
3861
|
}
|
3845
3862
|
}
|
@@ -3850,12 +3867,12 @@ xstring : tXSTRING_BEG xstring_contents tSTRING_END
|
|
3850
3867
|
}
|
3851
3868
|
;
|
3852
3869
|
|
3853
|
-
regexp : tREGEXP_BEG
|
3870
|
+
regexp : tREGEXP_BEG regexp_contents tREGEXP_END
|
3854
3871
|
{
|
3855
3872
|
/*%%%*/
|
3856
3873
|
int options = $3;
|
3857
3874
|
NODE *node = $2;
|
3858
|
-
|
3875
|
+
NODE *list, *prev;
|
3859
3876
|
if (!node) {
|
3860
3877
|
node = NEW_LIT(reg_compile(STR_NEW0(), options));
|
3861
3878
|
}
|
@@ -3877,12 +3894,35 @@ regexp : tREGEXP_BEG xstring_contents tREGEXP_END
|
|
3877
3894
|
nd_set_type(node, NODE_DREGX);
|
3878
3895
|
}
|
3879
3896
|
node->nd_cflag = options & RE_OPTION_MASK;
|
3880
|
-
|
3881
|
-
|
3882
|
-
|
3883
|
-
|
3897
|
+
if (!NIL_P(node->nd_lit)) reg_fragment_check(node->nd_lit, options);
|
3898
|
+
for (list = (prev = node)->nd_next; list; list = list->nd_next) {
|
3899
|
+
if (nd_type(list->nd_head) == NODE_STR) {
|
3900
|
+
VALUE tail = list->nd_head->nd_lit;
|
3901
|
+
if (reg_fragment_check(tail, options) && prev && !NIL_P(prev->nd_lit)) {
|
3902
|
+
VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
|
3903
|
+
if (!literal_concat0(parser, lit, tail)) {
|
3904
|
+
node = 0;
|
3905
|
+
break;
|
3906
|
+
}
|
3907
|
+
rb_str_resize(tail, 0);
|
3908
|
+
prev->nd_next = list->nd_next;
|
3909
|
+
rb_gc_force_recycle((VALUE)list->nd_head);
|
3910
|
+
rb_gc_force_recycle((VALUE)list);
|
3911
|
+
list = prev;
|
3912
|
+
}
|
3913
|
+
else {
|
3914
|
+
prev = list;
|
3915
|
+
}
|
3884
3916
|
}
|
3917
|
+
else {
|
3918
|
+
prev = 0;
|
3919
|
+
}
|
3885
3920
|
}
|
3921
|
+
if (!node->nd_next) {
|
3922
|
+
VALUE src = node->nd_lit;
|
3923
|
+
nd_set_type(node, NODE_LIT);
|
3924
|
+
node->nd_lit = reg_compile(src, options);
|
3925
|
+
}
|
3886
3926
|
break;
|
3887
3927
|
}
|
3888
3928
|
$$ = node;
|
@@ -3898,11 +3938,16 @@ words : tWORDS_BEG ' ' tSTRING_END
|
|
3898
3938
|
$$ = NEW_ZARRAY();
|
3899
3939
|
/*%
|
3900
3940
|
$$ = dispatch0(words_new);
|
3941
|
+
$$ = dispatch1(array, $$);
|
3901
3942
|
%*/
|
3902
3943
|
}
|
3903
3944
|
| tWORDS_BEG word_list tSTRING_END
|
3904
3945
|
{
|
3946
|
+
/*%%%*/
|
3905
3947
|
$$ = $2;
|
3948
|
+
/*%
|
3949
|
+
$$ = dispatch1(array, $2);
|
3950
|
+
%*/
|
3906
3951
|
}
|
3907
3952
|
;
|
3908
3953
|
|
@@ -3948,11 +3993,16 @@ qwords : tQWORDS_BEG ' ' tSTRING_END
|
|
3948
3993
|
$$ = NEW_ZARRAY();
|
3949
3994
|
/*%
|
3950
3995
|
$$ = dispatch0(qwords_new);
|
3996
|
+
$$ = dispatch1(array, $$);
|
3951
3997
|
%*/
|
3952
3998
|
}
|
3953
3999
|
| tQWORDS_BEG qword_list tSTRING_END
|
3954
4000
|
{
|
4001
|
+
/*%%%*/
|
3955
4002
|
$$ = $2;
|
4003
|
+
/*%
|
4004
|
+
$$ = dispatch1(array, $2);
|
4005
|
+
%*/
|
3956
4006
|
}
|
3957
4007
|
;
|
3958
4008
|
|
@@ -4010,6 +4060,43 @@ xstring_contents: /* none */
|
|
4010
4060
|
}
|
4011
4061
|
;
|
4012
4062
|
|
4063
|
+
regexp_contents: /* none */
|
4064
|
+
{
|
4065
|
+
/*%%%*/
|
4066
|
+
$$ = 0;
|
4067
|
+
/*%
|
4068
|
+
$$ = dispatch0(regexp_new);
|
4069
|
+
%*/
|
4070
|
+
}
|
4071
|
+
| regexp_contents string_content
|
4072
|
+
{
|
4073
|
+
/*%%%*/
|
4074
|
+
NODE *head = $1, *tail = $2;
|
4075
|
+
if (!head) {
|
4076
|
+
$$ = tail;
|
4077
|
+
}
|
4078
|
+
else if (!tail) {
|
4079
|
+
$$ = head;
|
4080
|
+
}
|
4081
|
+
else {
|
4082
|
+
switch (nd_type(head)) {
|
4083
|
+
case NODE_STR:
|
4084
|
+
nd_set_type(head, NODE_DSTR);
|
4085
|
+
break;
|
4086
|
+
case NODE_DSTR:
|
4087
|
+
break;
|
4088
|
+
default:
|
4089
|
+
head = list_append(NEW_DSTR(Qnil), head);
|
4090
|
+
break;
|
4091
|
+
}
|
4092
|
+
$$ = list_append(head, tail);
|
4093
|
+
}
|
4094
|
+
/*%
|
4095
|
+
$$ = dispatch2(regexp_add, $1, $2);
|
4096
|
+
%*/
|
4097
|
+
}
|
4098
|
+
;
|
4099
|
+
|
4013
4100
|
string_content : tSTRING_CONTENT
|
4014
4101
|
| tSTRING_DVAR
|
4015
4102
|
{
|
@@ -4028,23 +4115,27 @@ string_content : tSTRING_CONTENT
|
|
4028
4115
|
%*/
|
4029
4116
|
}
|
4030
4117
|
| tSTRING_DBEG
|
4118
|
+
{
|
4119
|
+
$<val>1 = cond_stack;
|
4120
|
+
$<val>$ = cmdarg_stack;
|
4121
|
+
cond_stack = 0;
|
4122
|
+
cmdarg_stack = 0;
|
4123
|
+
}
|
4031
4124
|
{
|
4032
4125
|
$<node>$ = lex_strterm;
|
4033
4126
|
lex_strterm = 0;
|
4034
4127
|
lex_state = EXPR_BEG;
|
4035
|
-
COND_PUSH(0);
|
4036
|
-
CMDARG_PUSH(0);
|
4037
4128
|
}
|
4038
4129
|
compstmt '}'
|
4039
4130
|
{
|
4040
|
-
|
4041
|
-
|
4042
|
-
|
4131
|
+
cond_stack = $<val>1;
|
4132
|
+
cmdarg_stack = $<val>2;
|
4133
|
+
lex_strterm = $<node>3;
|
4043
4134
|
/*%%%*/
|
4044
|
-
if ($
|
4045
|
-
$$ = new_evstr($
|
4135
|
+
if ($4) $4->flags &= ~NODE_FL_NEWLINE;
|
4136
|
+
$$ = new_evstr($4);
|
4046
4137
|
/*%
|
4047
|
-
$$ = dispatch1(string_embexpr, $
|
4138
|
+
$$ = dispatch1(string_embexpr, $4);
|
4048
4139
|
%*/
|
4049
4140
|
}
|
4050
4141
|
;
|
@@ -4078,11 +4169,10 @@ string_dvar : tGVAR
|
|
4078
4169
|
|
4079
4170
|
symbol : tSYMBEG sym
|
4080
4171
|
{
|
4081
|
-
/*%%%*/
|
4082
4172
|
lex_state = EXPR_END;
|
4173
|
+
/*%%%*/
|
4083
4174
|
$$ = $2;
|
4084
4175
|
/*%
|
4085
|
-
lex_state = EXPR_END;
|
4086
4176
|
$$ = dispatch1(symbol, $2);
|
4087
4177
|
%*/
|
4088
4178
|
}
|
@@ -4096,8 +4186,8 @@ sym : fname
|
|
4096
4186
|
|
4097
4187
|
dsym : tSYMBEG xstring_contents tSTRING_END
|
4098
4188
|
{
|
4099
|
-
/*%%%*/
|
4100
4189
|
lex_state = EXPR_END;
|
4190
|
+
/*%%%*/
|
4101
4191
|
if (!($$ = $2)) {
|
4102
4192
|
$$ = NEW_LIT(ID2SYM(rb_intern("")));
|
4103
4193
|
}
|
@@ -4114,12 +4204,11 @@ dsym : tSYMBEG xstring_contents tSTRING_END
|
|
4114
4204
|
nd_set_type($$, NODE_LIT);
|
4115
4205
|
break;
|
4116
4206
|
default:
|
4117
|
-
$$ = NEW_NODE(NODE_DSYM,
|
4207
|
+
$$ = NEW_NODE(NODE_DSYM, Qnil, 1, NEW_LIST($$));
|
4118
4208
|
break;
|
4119
4209
|
}
|
4120
4210
|
}
|
4121
4211
|
/*%
|
4122
|
-
lex_state = EXPR_END;
|
4123
4212
|
$$ = dispatch1(dyna_symbol, $2);
|
4124
4213
|
%*/
|
4125
4214
|
}
|
@@ -4171,10 +4260,10 @@ var_ref : variable
|
|
4171
4260
|
|
4172
4261
|
var_lhs : variable
|
4173
4262
|
{
|
4174
|
-
/*%%%*/
|
4175
4263
|
$$ = assignable($1, 0);
|
4264
|
+
/*%%%*/
|
4176
4265
|
/*%
|
4177
|
-
$$ = dispatch1(var_field,
|
4266
|
+
$$ = dispatch1(var_field, $$);
|
4178
4267
|
%*/
|
4179
4268
|
}
|
4180
4269
|
;
|
@@ -4215,13 +4304,11 @@ f_arglist : '(' f_args rparen
|
|
4215
4304
|
{
|
4216
4305
|
/*%%%*/
|
4217
4306
|
$$ = $2;
|
4218
|
-
lex_state = EXPR_BEG;
|
4219
|
-
command_start = Qtrue;
|
4220
4307
|
/*%
|
4221
4308
|
$$ = dispatch1(paren, $2);
|
4222
|
-
lex_state = EXPR_BEG;
|
4223
|
-
command_start = Qtrue;
|
4224
4309
|
%*/
|
4310
|
+
lex_state = EXPR_BEG;
|
4311
|
+
command_start = TRUE;
|
4225
4312
|
}
|
4226
4313
|
| f_args term
|
4227
4314
|
{
|
@@ -4392,29 +4479,25 @@ f_bad_arg : tCONSTANT
|
|
4392
4479
|
f_norm_arg : f_bad_arg
|
4393
4480
|
| tIDENTIFIER
|
4394
4481
|
{
|
4395
|
-
|
4396
|
-
if (!is_local_id($1))
|
4397
|
-
yyerror("formal argument must be local variable");
|
4398
|
-
shadowing_lvar($1);
|
4399
|
-
/*%
|
4400
|
-
%*/
|
4482
|
+
formal_argument(get_id($1));
|
4401
4483
|
$$ = $1;
|
4402
4484
|
}
|
4403
4485
|
;
|
4404
4486
|
|
4405
4487
|
f_arg_item : f_norm_arg
|
4406
4488
|
{
|
4489
|
+
arg_var(get_id($1));
|
4407
4490
|
/*%%%*/
|
4408
|
-
arg_var($1);
|
4409
4491
|
$$ = NEW_ARGS_AUX($1, 1);
|
4410
4492
|
/*%
|
4493
|
+
$$ = get_value($1);
|
4411
4494
|
%*/
|
4412
4495
|
}
|
4413
4496
|
| tLPAREN f_margs rparen
|
4414
4497
|
{
|
4415
|
-
/*%%%*/
|
4416
4498
|
ID tid = internal_id();
|
4417
4499
|
arg_var(tid);
|
4500
|
+
/*%%%*/
|
4418
4501
|
if (dyna_in_block()) {
|
4419
4502
|
$2->nd_value = NEW_DVAR(tid);
|
4420
4503
|
}
|
@@ -4451,28 +4534,24 @@ f_arg : f_arg_item
|
|
4451
4534
|
|
4452
4535
|
f_opt : tIDENTIFIER '=' arg_value
|
4453
4536
|
{
|
4537
|
+
arg_var(formal_argument(get_id($1)));
|
4538
|
+
$$ = assignable($1, $3);
|
4454
4539
|
/*%%%*/
|
4455
|
-
|
4456
|
-
yyerror("formal argument must be local variable");
|
4457
|
-
shadowing_lvar($1);
|
4458
|
-
arg_var($1);
|
4459
|
-
$$ = NEW_OPT_ARG(0, assignable($1, $3));
|
4540
|
+
$$ = NEW_OPT_ARG(0, $$);
|
4460
4541
|
/*%
|
4461
|
-
$$ = rb_assoc_new(
|
4542
|
+
$$ = rb_assoc_new($$, $3);
|
4462
4543
|
%*/
|
4463
4544
|
}
|
4464
4545
|
;
|
4465
4546
|
|
4466
4547
|
f_block_opt : tIDENTIFIER '=' primary_value
|
4467
4548
|
{
|
4549
|
+
arg_var(formal_argument(get_id($1)));
|
4550
|
+
$$ = assignable($1, $3);
|
4468
4551
|
/*%%%*/
|
4469
|
-
|
4470
|
-
yyerror("formal argument must be local variable");
|
4471
|
-
shadowing_lvar($1);
|
4472
|
-
arg_var($1);
|
4473
|
-
$$ = NEW_OPT_ARG(0, assignable($1, $3));
|
4552
|
+
$$ = NEW_OPT_ARG(0, $$);
|
4474
4553
|
/*%
|
4475
|
-
$$ = rb_assoc_new(
|
4554
|
+
$$ = rb_assoc_new($$, $3);
|
4476
4555
|
%*/
|
4477
4556
|
}
|
4478
4557
|
;
|
@@ -4534,8 +4613,9 @@ f_rest_arg : restarg_mark tIDENTIFIER
|
|
4534
4613
|
/*%%%*/
|
4535
4614
|
if (!is_local_id($2))
|
4536
4615
|
yyerror("rest argument must be local variable");
|
4537
|
-
|
4538
|
-
arg_var($2);
|
4616
|
+
/*% %*/
|
4617
|
+
arg_var(shadowing_lvar(get_id($2)));
|
4618
|
+
/*%%%*/
|
4539
4619
|
$$ = $2;
|
4540
4620
|
/*%
|
4541
4621
|
$$ = dispatch1(rest_param, $2);
|
@@ -4563,8 +4643,9 @@ f_block_arg : blkarg_mark tIDENTIFIER
|
|
4563
4643
|
yyerror("block argument must be local variable");
|
4564
4644
|
else if (!dyna_in_block() && local_id($2))
|
4565
4645
|
yyerror("duplicated block argument name");
|
4566
|
-
|
4567
|
-
arg_var($2);
|
4646
|
+
/*% %*/
|
4647
|
+
arg_var(shadowing_lvar(get_id($2)));
|
4648
|
+
/*%%%*/
|
4568
4649
|
$$ = $2;
|
4569
4650
|
/*%
|
4570
4651
|
$$ = dispatch1(blockarg, $2);
|
@@ -4765,41 +4846,65 @@ static int parser_here_document(struct parser_params*,NODE*);
|
|
4765
4846
|
# define heredoc_restore(n) parser_heredoc_restore(parser,n)
|
4766
4847
|
# define whole_match_p(e,l,i) parser_whole_match_p(parser,e,l,i)
|
4767
4848
|
|
4768
|
-
#ifdef RIPPER
|
4769
|
-
/* FIXME */
|
4770
|
-
# define local_id(x) 1
|
4771
|
-
# define dyna_in_block() 1
|
4772
|
-
#endif /* RIPPER */
|
4773
|
-
|
4774
4849
|
#ifndef RIPPER
|
4775
4850
|
# define set_yylval_str(x) yylval.node = NEW_STR(x)
|
4776
4851
|
# define set_yylval_num(x) yylval.num = x
|
4777
4852
|
# define set_yylval_id(x) yylval.id = x
|
4853
|
+
# define set_yylval_name(x) yylval.id = x
|
4778
4854
|
# define set_yylval_literal(x) yylval.node = NEW_LIT(x)
|
4779
4855
|
# define set_yylval_node(x) yylval.node = x
|
4780
4856
|
# define yylval_id() yylval.id
|
4781
4857
|
#else
|
4858
|
+
static inline VALUE
|
4859
|
+
ripper_yylval_id(ID x)
|
4860
|
+
{
|
4861
|
+
return (VALUE)NEW_LASGN(x, ID2SYM(x));
|
4862
|
+
}
|
4782
4863
|
# define set_yylval_str(x) (void)(x)
|
4783
4864
|
# define set_yylval_num(x) (void)(x)
|
4784
|
-
# define set_yylval_id(x)
|
4865
|
+
# define set_yylval_id(x) (void)(x)
|
4866
|
+
# define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
|
4785
4867
|
# define set_yylval_literal(x) (void)(x)
|
4786
4868
|
# define set_yylval_node(x) (void)(x)
|
4787
|
-
# define yylval_id()
|
4869
|
+
# define yylval_id() yylval.id
|
4788
4870
|
#endif
|
4789
4871
|
|
4790
|
-
#
|
4872
|
+
#ifndef RIPPER
|
4873
|
+
#define ripper_flush(p) (void)(p)
|
4874
|
+
#else
|
4791
4875
|
#define ripper_flush(p) (p->tokp = p->parser_lex_p)
|
4792
4876
|
|
4793
|
-
|
4794
|
-
|
4877
|
+
#define yylval_rval *(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val)
|
4878
|
+
|
4879
|
+
static int
|
4880
|
+
ripper_has_scan_event(struct parser_params *parser)
|
4795
4881
|
{
|
4796
|
-
VALUE str;
|
4797
4882
|
|
4798
4883
|
if (lex_p < parser->tokp) rb_raise(rb_eRuntimeError, "lex_p < tokp");
|
4799
|
-
|
4800
|
-
|
4801
|
-
|
4884
|
+
return lex_p > parser->tokp;
|
4885
|
+
}
|
4886
|
+
|
4887
|
+
static VALUE
|
4888
|
+
ripper_scan_event_val(struct parser_params *parser, int t)
|
4889
|
+
{
|
4890
|
+
VALUE str = STR_NEW(parser->tokp, lex_p - parser->tokp);
|
4891
|
+
VALUE rval = ripper_dispatch1(parser, ripper_token2eventid(t), str);
|
4802
4892
|
ripper_flush(parser);
|
4893
|
+
return rval;
|
4894
|
+
}
|
4895
|
+
|
4896
|
+
static void
|
4897
|
+
ripper_dispatch_scan_event(struct parser_params *parser, int t)
|
4898
|
+
{
|
4899
|
+
if (!ripper_has_scan_event(parser)) return;
|
4900
|
+
yylval_rval = ripper_scan_event_val(parser, t);
|
4901
|
+
}
|
4902
|
+
|
4903
|
+
static void
|
4904
|
+
ripper_dispatch_ignored_scan_event(struct parser_params *parser, int t)
|
4905
|
+
{
|
4906
|
+
if (!ripper_has_scan_event(parser)) return;
|
4907
|
+
(void)ripper_scan_event_val(parser, t);
|
4803
4908
|
}
|
4804
4909
|
|
4805
4910
|
static void
|
@@ -4810,7 +4915,7 @@ ripper_dispatch_delayed_token(struct parser_params *parser, int t)
|
|
4810
4915
|
|
4811
4916
|
ruby_sourceline = parser->delayed_line;
|
4812
4917
|
parser->tokp = lex_pbeg + parser->delayed_col;
|
4813
|
-
|
4918
|
+
yylval_rval = ripper_dispatch1(parser, ripper_token2eventid(t), parser->delayed);
|
4814
4919
|
parser->delayed = Qnil;
|
4815
4920
|
ruby_sourceline = saved_line;
|
4816
4921
|
parser->tokp = saved_tokp;
|
@@ -4867,6 +4972,7 @@ token_info_has_nonspaces(struct parser_params *parser, const char *token)
|
|
4867
4972
|
return 0;
|
4868
4973
|
}
|
4869
4974
|
|
4975
|
+
#undef token_info_push
|
4870
4976
|
static void
|
4871
4977
|
token_info_push(struct parser_params *parser, const char *token)
|
4872
4978
|
{
|
@@ -4883,6 +4989,7 @@ token_info_push(struct parser_params *parser, const char *token)
|
|
4883
4989
|
parser->parser_token_info = ptinfo;
|
4884
4990
|
}
|
4885
4991
|
|
4992
|
+
#undef token_info_pop
|
4886
4993
|
static void
|
4887
4994
|
token_info_pop(struct parser_params *parser, const char *token)
|
4888
4995
|
{
|
@@ -4917,7 +5024,8 @@ parser_yyerror(struct parser_params *parser, const char *msg)
|
|
4917
5024
|
const int max_line_margin = 30;
|
4918
5025
|
const char *p, *pe;
|
4919
5026
|
char *buf;
|
4920
|
-
|
5027
|
+
long len;
|
5028
|
+
int i;
|
4921
5029
|
|
4922
5030
|
compile_error(PARSER_ARG "%s", msg);
|
4923
5031
|
p = lex_p;
|
@@ -4954,7 +5062,7 @@ parser_yyerror(struct parser_params *parser, const char *msg)
|
|
4954
5062
|
buf[len] = '\0';
|
4955
5063
|
rb_compile_error_append("%s%s%s", pre, buf, post);
|
4956
5064
|
|
4957
|
-
i = lex_p - p;
|
5065
|
+
i = (int)(lex_p - p);
|
4958
5066
|
p2 = buf; pe = buf + len;
|
4959
5067
|
|
4960
5068
|
while (p2 < pe) {
|
@@ -4979,8 +5087,10 @@ VALUE ruby_suppress_tracing(VALUE (*func)(VALUE, int), VALUE arg, int always);
|
|
4979
5087
|
static VALUE
|
4980
5088
|
debug_lines(const char *f)
|
4981
5089
|
{
|
4982
|
-
|
4983
|
-
|
5090
|
+
ID script_lines;
|
5091
|
+
CONST_ID(script_lines, "SCRIPT_LINES__");
|
5092
|
+
if (rb_const_defined_at(rb_cObject, script_lines)) {
|
5093
|
+
VALUE hash = rb_const_get_at(rb_cObject, script_lines);
|
4984
5094
|
if (TYPE(hash) == T_HASH) {
|
4985
5095
|
VALUE fname = rb_str_new2(f);
|
4986
5096
|
VALUE lines = rb_ary_new();
|
@@ -5012,9 +5122,7 @@ coverage(const char *f, int n)
|
|
5012
5122
|
static int
|
5013
5123
|
e_option_supplied(struct parser_params *parser)
|
5014
5124
|
{
|
5015
|
-
|
5016
|
-
return Qtrue;
|
5017
|
-
return Qfalse;
|
5125
|
+
return strcmp(ruby_sourcefile, "-e") == 0;
|
5018
5126
|
}
|
5019
5127
|
|
5020
5128
|
static VALUE
|
@@ -5024,7 +5132,7 @@ yycompile0(VALUE arg, int tracing)
|
|
5024
5132
|
NODE *tree;
|
5025
5133
|
struct parser_params *parser = (struct parser_params *)arg;
|
5026
5134
|
|
5027
|
-
if (
|
5135
|
+
if (!compile_for_eval && rb_safe_level() == 0) {
|
5028
5136
|
ruby_debug_lines = debug_lines(ruby_sourcefile);
|
5029
5137
|
if (ruby_debug_lines && ruby_sourceline > 0) {
|
5030
5138
|
VALUE str = STR_NEW0();
|
@@ -5056,16 +5164,8 @@ yycompile0(VALUE arg, int tracing)
|
|
5056
5164
|
if (!tree) {
|
5057
5165
|
tree = NEW_NIL();
|
5058
5166
|
}
|
5059
|
-
if (ruby_eval_tree_begin) {
|
5060
|
-
|
5061
|
-
|
5062
|
-
if (scope) {
|
5063
|
-
scope->nd_body = NEW_PRELUDE(ruby_eval_tree_begin, scope->nd_body);
|
5064
|
-
}
|
5065
|
-
tree = scope;
|
5066
|
-
}
|
5067
|
-
else {
|
5068
|
-
tree = ruby_eval_tree;
|
5167
|
+
else if (ruby_eval_tree_begin) {
|
5168
|
+
tree->nd_body = NEW_PRELUDE(ruby_eval_tree_begin, tree->nd_body);
|
5069
5169
|
}
|
5070
5170
|
return (VALUE)tree;
|
5071
5171
|
}
|
@@ -5075,14 +5175,25 @@ yycompile(struct parser_params *parser, const char *f, int line)
|
|
5075
5175
|
{
|
5076
5176
|
ruby_sourcefile = ruby_strdup(f);
|
5077
5177
|
ruby_sourceline = line - 1;
|
5078
|
-
return (NODE *)ruby_suppress_tracing(yycompile0, (VALUE)parser,
|
5178
|
+
return (NODE *)ruby_suppress_tracing(yycompile0, (VALUE)parser, TRUE);
|
5079
5179
|
}
|
5080
5180
|
#endif /* !RIPPER */
|
5081
5181
|
|
5182
|
+
static rb_encoding *
|
5183
|
+
must_be_ascii_compatible(VALUE s)
|
5184
|
+
{
|
5185
|
+
rb_encoding *enc = rb_enc_get(s);
|
5186
|
+
if (!rb_enc_asciicompat(enc)) {
|
5187
|
+
rb_raise(rb_eArgError, "invalid source encoding");
|
5188
|
+
}
|
5189
|
+
return enc;
|
5190
|
+
}
|
5191
|
+
|
5082
5192
|
static VALUE
|
5083
5193
|
lex_get_str(struct parser_params *parser, VALUE s)
|
5084
5194
|
{
|
5085
5195
|
char *beg, *end, *pend;
|
5196
|
+
rb_encoding *enc = must_be_ascii_compatible(s);
|
5086
5197
|
|
5087
5198
|
beg = RSTRING_PTR(s);
|
5088
5199
|
if (lex_gets_ptr) {
|
@@ -5095,41 +5206,38 @@ lex_get_str(struct parser_params *parser, VALUE s)
|
|
5095
5206
|
if (*end++ == '\n') break;
|
5096
5207
|
}
|
5097
5208
|
lex_gets_ptr = end - RSTRING_PTR(s);
|
5098
|
-
return rb_enc_str_new(beg, end - beg,
|
5209
|
+
return rb_enc_str_new(beg, end - beg, enc);
|
5099
5210
|
}
|
5100
5211
|
|
5101
5212
|
static VALUE
|
5102
5213
|
lex_getline(struct parser_params *parser)
|
5103
5214
|
{
|
5104
5215
|
VALUE line = (*parser->parser_lex_gets)(parser, parser->parser_lex_input);
|
5216
|
+
if (NIL_P(line)) return line;
|
5217
|
+
must_be_ascii_compatible(line);
|
5105
5218
|
#ifndef RIPPER
|
5106
|
-
if (ruby_debug_lines
|
5219
|
+
if (ruby_debug_lines) {
|
5220
|
+
rb_enc_associate(line, parser->enc);
|
5107
5221
|
rb_ary_push(ruby_debug_lines, line);
|
5108
5222
|
}
|
5109
|
-
if (ruby_coverage
|
5223
|
+
if (ruby_coverage) {
|
5110
5224
|
rb_ary_push(ruby_coverage, Qnil);
|
5111
5225
|
}
|
5112
5226
|
#endif
|
5113
5227
|
return line;
|
5114
5228
|
}
|
5115
5229
|
|
5116
|
-
|
5117
|
-
NODE*
|
5118
|
-
rb_compile_string(const char *f, VALUE s, int line)
|
5119
|
-
{
|
5120
|
-
VALUE volatile vparser = rb_parser_new();
|
5121
|
-
|
5122
|
-
return rb_parser_compile_string(vparser, f, s, line);
|
5123
|
-
}
|
5230
|
+
static const rb_data_type_t parser_data_type;
|
5124
5231
|
|
5125
|
-
|
5126
|
-
|
5232
|
+
#ifndef RIPPER
|
5233
|
+
static NODE*
|
5234
|
+
parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
|
5127
5235
|
{
|
5128
5236
|
struct parser_params *parser;
|
5129
5237
|
NODE *node;
|
5130
5238
|
volatile VALUE tmp;
|
5131
5239
|
|
5132
|
-
|
5240
|
+
TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser);
|
5133
5241
|
lex_gets = lex_get_str;
|
5134
5242
|
lex_gets_ptr = 0;
|
5135
5243
|
lex_input = s;
|
@@ -5142,16 +5250,32 @@ rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int lin
|
|
5142
5250
|
return node;
|
5143
5251
|
}
|
5144
5252
|
|
5253
|
+
NODE*
|
5254
|
+
rb_compile_string(const char *f, VALUE s, int line)
|
5255
|
+
{
|
5256
|
+
must_be_ascii_compatible(s);
|
5257
|
+
return parser_compile_string(rb_parser_new(), f, s, line);
|
5258
|
+
}
|
5259
|
+
|
5260
|
+
NODE*
|
5261
|
+
rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
|
5262
|
+
{
|
5263
|
+
must_be_ascii_compatible(s);
|
5264
|
+
return parser_compile_string(vparser, f, s, line);
|
5265
|
+
}
|
5266
|
+
|
5145
5267
|
NODE*
|
5146
5268
|
rb_compile_cstr(const char *f, const char *s, int len, int line)
|
5147
5269
|
{
|
5148
|
-
|
5270
|
+
VALUE str = rb_str_new(s, len);
|
5271
|
+
return parser_compile_string(rb_parser_new(), f, str, line);
|
5149
5272
|
}
|
5150
5273
|
|
5151
5274
|
NODE*
|
5152
5275
|
rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
|
5153
5276
|
{
|
5154
|
-
|
5277
|
+
VALUE str = rb_str_new(s, len);
|
5278
|
+
return parser_compile_string(vparser, f, str, line);
|
5155
5279
|
}
|
5156
5280
|
|
5157
5281
|
static VALUE
|
@@ -5175,7 +5299,7 @@ rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int st
|
|
5175
5299
|
volatile VALUE tmp;
|
5176
5300
|
NODE *node;
|
5177
5301
|
|
5178
|
-
|
5302
|
+
TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser);
|
5179
5303
|
lex_gets = lex_io_gets;
|
5180
5304
|
lex_input = file;
|
5181
5305
|
lex_pbeg = lex_p = lex_pend = 0;
|
@@ -5252,7 +5376,7 @@ parser_nextc(struct parser_params *parser)
|
|
5252
5376
|
rb_str_buf_cat(parser->delayed,
|
5253
5377
|
parser->tokp, lex_pend - parser->tokp);
|
5254
5378
|
parser->delayed_line = ruby_sourceline;
|
5255
|
-
parser->delayed_col = parser->tokp - lex_pbeg;
|
5379
|
+
parser->delayed_col = (int)(parser->tokp - lex_pbeg);
|
5256
5380
|
}
|
5257
5381
|
else {
|
5258
5382
|
rb_str_buf_cat(parser->delayed,
|
@@ -5268,9 +5392,7 @@ parser_nextc(struct parser_params *parser)
|
|
5268
5392
|
parser->line_count++;
|
5269
5393
|
lex_pbeg = lex_p = RSTRING_PTR(v);
|
5270
5394
|
lex_pend = lex_p + RSTRING_LEN(v);
|
5271
|
-
#ifdef RIPPER
|
5272
5395
|
ripper_flush(parser);
|
5273
|
-
#endif
|
5274
5396
|
lex_lastline = v;
|
5275
5397
|
}
|
5276
5398
|
}
|
@@ -5338,7 +5460,7 @@ parser_tokadd(struct parser_params *parser, int c)
|
|
5338
5460
|
}
|
5339
5461
|
|
5340
5462
|
static int
|
5341
|
-
parser_tok_hex(struct parser_params *parser,
|
5463
|
+
parser_tok_hex(struct parser_params *parser, size_t *numlen)
|
5342
5464
|
{
|
5343
5465
|
int c;
|
5344
5466
|
|
@@ -5365,7 +5487,7 @@ parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp,
|
|
5365
5487
|
*/
|
5366
5488
|
|
5367
5489
|
int codepoint;
|
5368
|
-
|
5490
|
+
size_t numlen;
|
5369
5491
|
|
5370
5492
|
if (regexp_literal) { tokadd('\\'); tokadd('u'); }
|
5371
5493
|
|
@@ -5384,18 +5506,13 @@ parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp,
|
|
5384
5506
|
}
|
5385
5507
|
lex_p += numlen;
|
5386
5508
|
if (regexp_literal) {
|
5387
|
-
tokcopy(numlen);
|
5509
|
+
tokcopy((int)numlen);
|
5388
5510
|
}
|
5389
5511
|
else if (codepoint >= 0x80) {
|
5390
5512
|
*encp = UTF8_ENC();
|
5391
5513
|
if (string_literal) tokaddmbc(codepoint, *encp);
|
5392
5514
|
}
|
5393
5515
|
else if (string_literal) {
|
5394
|
-
if (codepoint == 0 && symbol_literal) {
|
5395
|
-
yyerror("symbol cannot contain '\\u{0}'");
|
5396
|
-
return 0;
|
5397
|
-
}
|
5398
|
-
|
5399
5516
|
tokadd(codepoint);
|
5400
5517
|
}
|
5401
5518
|
} while (string_literal && (peek(' ') || peek('\t')));
|
@@ -5423,11 +5540,6 @@ parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp,
|
|
5423
5540
|
if (string_literal) tokaddmbc(codepoint, *encp);
|
5424
5541
|
}
|
5425
5542
|
else if (string_literal) {
|
5426
|
-
if (codepoint == 0 && symbol_literal) {
|
5427
|
-
yyerror("symbol cannot contain '\\u0000'");
|
5428
|
-
return 0;
|
5429
|
-
}
|
5430
|
-
|
5431
5543
|
tokadd(codepoint);
|
5432
5544
|
}
|
5433
5545
|
}
|
@@ -5443,7 +5555,7 @@ parser_read_escape(struct parser_params *parser, int flags,
|
|
5443
5555
|
rb_encoding **encp)
|
5444
5556
|
{
|
5445
5557
|
int c;
|
5446
|
-
|
5558
|
+
size_t numlen;
|
5447
5559
|
|
5448
5560
|
switch (c = nextc()) {
|
5449
5561
|
case '\\': /* Backslash */
|
@@ -5473,13 +5585,9 @@ parser_read_escape(struct parser_params *parser, int flags,
|
|
5473
5585
|
case '0': case '1': case '2': case '3': /* octal constant */
|
5474
5586
|
case '4': case '5': case '6': case '7':
|
5475
5587
|
if (flags & (ESCAPE_CONTROL|ESCAPE_META)) goto eof;
|
5476
|
-
|
5477
|
-
|
5478
|
-
|
5479
|
-
pushback(c);
|
5480
|
-
c = scan_oct(lex_p, 3, &numlen);
|
5481
|
-
lex_p += numlen;
|
5482
|
-
}
|
5588
|
+
pushback(c);
|
5589
|
+
c = scan_oct(lex_p, 3, &numlen);
|
5590
|
+
lex_p += numlen;
|
5483
5591
|
return c;
|
5484
5592
|
|
5485
5593
|
case 'x': /* hex constant */
|
@@ -5501,6 +5609,7 @@ parser_read_escape(struct parser_params *parser, int flags,
|
|
5501
5609
|
goto eof;
|
5502
5610
|
}
|
5503
5611
|
if ((c = nextc()) == '\\') {
|
5612
|
+
if (peek('u')) goto eof;
|
5504
5613
|
return read_escape(flags|ESCAPE_META, encp) | 0x80;
|
5505
5614
|
}
|
5506
5615
|
else if (c == -1 || !ISASCII(c)) goto eof;
|
@@ -5516,6 +5625,7 @@ parser_read_escape(struct parser_params *parser, int flags,
|
|
5516
5625
|
case 'c':
|
5517
5626
|
if (flags & ESCAPE_CONTROL) goto eof;
|
5518
5627
|
if ((c = nextc())== '\\') {
|
5628
|
+
if (peek('u')) goto eof;
|
5519
5629
|
c = read_escape(flags|ESCAPE_CONTROL, encp);
|
5520
5630
|
}
|
5521
5631
|
else if (c == '?')
|
@@ -5545,6 +5655,7 @@ parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
|
|
5545
5655
|
{
|
5546
5656
|
int c;
|
5547
5657
|
int flags = 0;
|
5658
|
+
size_t numlen;
|
5548
5659
|
|
5549
5660
|
first:
|
5550
5661
|
switch (c = nextc()) {
|
@@ -5555,25 +5666,19 @@ parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
|
|
5555
5666
|
case '4': case '5': case '6': case '7':
|
5556
5667
|
if (flags & (ESCAPE_CONTROL|ESCAPE_META)) goto eof;
|
5557
5668
|
{
|
5558
|
-
|
5559
|
-
int oct;
|
5560
|
-
|
5561
|
-
oct = scan_oct(--lex_p, 3, &numlen);
|
5669
|
+
ruby_scan_oct(--lex_p, 3, &numlen);
|
5562
5670
|
if (numlen == 0) goto eof;
|
5563
5671
|
lex_p += numlen;
|
5564
|
-
tokcopy(numlen + 1);
|
5672
|
+
tokcopy((int)numlen + 1);
|
5565
5673
|
}
|
5566
5674
|
return 0;
|
5567
5675
|
|
5568
5676
|
case 'x': /* hex constant */
|
5569
5677
|
if (flags & (ESCAPE_CONTROL|ESCAPE_META)) goto eof;
|
5570
5678
|
{
|
5571
|
-
|
5572
|
-
int hex;
|
5573
|
-
|
5574
|
-
hex = tok_hex(&numlen);
|
5679
|
+
tok_hex(&numlen);
|
5575
5680
|
if (numlen == 0) goto eof;
|
5576
|
-
tokcopy(numlen + 2);
|
5681
|
+
tokcopy((int)numlen + 2);
|
5577
5682
|
}
|
5578
5683
|
return 0;
|
5579
5684
|
|
@@ -5626,6 +5731,7 @@ static int
|
|
5626
5731
|
parser_regx_options(struct parser_params *parser)
|
5627
5732
|
{
|
5628
5733
|
int kcode = 0;
|
5734
|
+
int kopt = 0;
|
5629
5735
|
int options = 0;
|
5630
5736
|
int c, opt, kc;
|
5631
5737
|
|
@@ -5635,13 +5741,19 @@ parser_regx_options(struct parser_params *parser)
|
|
5635
5741
|
options |= RE_OPTION_ONCE;
|
5636
5742
|
}
|
5637
5743
|
else if (rb_char_to_option_kcode(c, &opt, &kc)) {
|
5638
|
-
|
5639
|
-
|
5744
|
+
if (kc >= 0) {
|
5745
|
+
if (kc != rb_ascii8bit_encindex()) kcode = c;
|
5746
|
+
kopt = opt;
|
5747
|
+
}
|
5748
|
+
else {
|
5749
|
+
options |= opt;
|
5750
|
+
}
|
5640
5751
|
}
|
5641
5752
|
else {
|
5642
5753
|
tokadd(c);
|
5643
5754
|
}
|
5644
5755
|
}
|
5756
|
+
options |= kopt;
|
5645
5757
|
pushback(c);
|
5646
5758
|
if (toklen()) {
|
5647
5759
|
tokfix();
|
@@ -5688,7 +5800,7 @@ parser_tokadd_string(struct parser_params *parser,
|
|
5688
5800
|
static const char mixed_msg[] = "%s mixed within %s source";
|
5689
5801
|
|
5690
5802
|
#define mixed_error(enc1, enc2) if (!errbuf) { \
|
5691
|
-
|
5803
|
+
size_t len = sizeof(mixed_msg) - 4; \
|
5692
5804
|
len += strlen(rb_enc_name(enc1)); \
|
5693
5805
|
len += strlen(rb_enc_name(enc2)); \
|
5694
5806
|
errbuf = ALLOCA_N(char, len); \
|
@@ -5769,6 +5881,8 @@ parser_tokadd_string(struct parser_params *parser,
|
|
5769
5881
|
}
|
5770
5882
|
else if (c != term && !(paren && c == paren)) {
|
5771
5883
|
tokadd('\\');
|
5884
|
+
pushback(c);
|
5885
|
+
continue;
|
5772
5886
|
}
|
5773
5887
|
}
|
5774
5888
|
}
|
@@ -5785,11 +5899,6 @@ parser_tokadd_string(struct parser_params *parser,
|
|
5785
5899
|
pushback(c);
|
5786
5900
|
break;
|
5787
5901
|
}
|
5788
|
-
if (!c && (func & STR_FUNC_SYMBOL)) {
|
5789
|
-
func &= ~STR_FUNC_SYMBOL;
|
5790
|
-
compile_error(PARSER_ARG "symbol cannot contain '\\0'");
|
5791
|
-
continue;
|
5792
|
-
}
|
5793
5902
|
if (c & 0x80) {
|
5794
5903
|
has_nonascii = 1;
|
5795
5904
|
if (enc != *encp) {
|
@@ -5809,7 +5918,7 @@ parser_tokadd_string(struct parser_params *parser,
|
|
5809
5918
|
static int
|
5810
5919
|
parser_parse_string(struct parser_params *parser, NODE *quote)
|
5811
5920
|
{
|
5812
|
-
int func = quote->nd_func;
|
5921
|
+
int func = (int)quote->nd_func;
|
5813
5922
|
int term = nd_term(quote);
|
5814
5923
|
int paren = nd_paren(quote);
|
5815
5924
|
int c, space = 0;
|
@@ -5864,13 +5973,26 @@ parser_parse_string(struct parser_params *parser, NODE *quote)
|
|
5864
5973
|
|
5865
5974
|
tokfix();
|
5866
5975
|
set_yylval_str(STR_NEW3(tok(), toklen(), enc, func));
|
5976
|
+
|
5977
|
+
#ifdef RIPPER
|
5978
|
+
if (!NIL_P(parser->delayed)){
|
5979
|
+
ptrdiff_t len = lex_p - parser->tokp;
|
5980
|
+
if (len > 0) {
|
5981
|
+
rb_enc_str_buf_cat(parser->delayed, parser->tokp, len, enc);
|
5982
|
+
}
|
5983
|
+
ripper_dispatch_delayed_token(parser, tSTRING_CONTENT);
|
5984
|
+
parser->tokp = lex_p;
|
5985
|
+
}
|
5986
|
+
#endif
|
5987
|
+
|
5867
5988
|
return tSTRING_CONTENT;
|
5868
5989
|
}
|
5869
5990
|
|
5870
5991
|
static int
|
5871
5992
|
parser_heredoc_identifier(struct parser_params *parser)
|
5872
5993
|
{
|
5873
|
-
int c = nextc(), term, func = 0
|
5994
|
+
int c = nextc(), term, func = 0;
|
5995
|
+
long len;
|
5874
5996
|
|
5875
5997
|
if (c == '-') {
|
5876
5998
|
c = nextc();
|
@@ -5925,9 +6047,7 @@ parser_heredoc_identifier(struct parser_params *parser)
|
|
5925
6047
|
len, /* nd_nth */
|
5926
6048
|
lex_lastline); /* nd_orig */
|
5927
6049
|
nd_set_line(lex_strterm, ruby_sourceline);
|
5928
|
-
#ifdef RIPPER
|
5929
6050
|
ripper_flush(parser);
|
5930
|
-
#endif
|
5931
6051
|
return term == '`' ? tXSTRING_BEG : tSTRING_BEG;
|
5932
6052
|
}
|
5933
6053
|
|
@@ -5936,12 +6056,6 @@ parser_heredoc_restore(struct parser_params *parser, NODE *here)
|
|
5936
6056
|
{
|
5937
6057
|
VALUE line;
|
5938
6058
|
|
5939
|
-
#ifdef RIPPER
|
5940
|
-
if (!NIL_P(parser->delayed))
|
5941
|
-
ripper_dispatch_delayed_token(parser, tSTRING_CONTENT);
|
5942
|
-
lex_goto_eol(parser);
|
5943
|
-
ripper_dispatch_scan_event(parser, tHEREDOC_END);
|
5944
|
-
#endif
|
5945
6059
|
line = here->nd_orig;
|
5946
6060
|
lex_lastline = line;
|
5947
6061
|
lex_pbeg = RSTRING_PTR(line);
|
@@ -5951,25 +6065,22 @@ parser_heredoc_restore(struct parser_params *parser, NODE *here)
|
|
5951
6065
|
ruby_sourceline = nd_line(here);
|
5952
6066
|
dispose_string(here->nd_lit);
|
5953
6067
|
rb_gc_force_recycle((VALUE)here);
|
5954
|
-
#ifdef RIPPER
|
5955
6068
|
ripper_flush(parser);
|
5956
|
-
#endif
|
5957
6069
|
}
|
5958
6070
|
|
5959
6071
|
static int
|
5960
6072
|
parser_whole_match_p(struct parser_params *parser,
|
5961
|
-
const char *eos,
|
6073
|
+
const char *eos, long len, int indent)
|
5962
6074
|
{
|
5963
6075
|
const char *p = lex_pbeg;
|
5964
|
-
|
6076
|
+
long n;
|
5965
6077
|
|
5966
6078
|
if (indent) {
|
5967
6079
|
while (*p && ISSPACE(*p)) p++;
|
5968
6080
|
}
|
5969
|
-
n= lex_pend - (p + len);
|
5970
|
-
if (n < 0 || (n > 0 && p[len] != '\n' && p[len] != '\r')) return
|
5971
|
-
|
5972
|
-
return Qfalse;
|
6081
|
+
n = lex_pend - (p + len);
|
6082
|
+
if (n < 0 || (n > 0 && p[len] != '\n' && p[len] != '\r')) return FALSE;
|
6083
|
+
return strncmp(eos, p, len) == 0;
|
5973
6084
|
}
|
5974
6085
|
|
5975
6086
|
static int
|
@@ -5979,6 +6090,7 @@ parser_here_document(struct parser_params *parser, NODE *here)
|
|
5979
6090
|
const char *eos, *p, *pend;
|
5980
6091
|
long len;
|
5981
6092
|
VALUE str = 0;
|
6093
|
+
rb_encoding *enc = parser->enc;
|
5982
6094
|
|
5983
6095
|
eos = RSTRING_PTR(here->nd_lit);
|
5984
6096
|
len = RSTRING_LEN(here->nd_lit) - 1;
|
@@ -5987,6 +6099,20 @@ parser_here_document(struct parser_params *parser, NODE *here)
|
|
5987
6099
|
if ((c = nextc()) == -1) {
|
5988
6100
|
error:
|
5989
6101
|
compile_error(PARSER_ARG "can't find string \"%s\" anywhere before EOF", eos);
|
6102
|
+
#ifdef RIPPER
|
6103
|
+
if (NIL_P(parser->delayed)) {
|
6104
|
+
ripper_dispatch_scan_event(parser, tSTRING_CONTENT);
|
6105
|
+
}
|
6106
|
+
else {
|
6107
|
+
if (str ||
|
6108
|
+
((len = lex_p - parser->tokp) > 0 &&
|
6109
|
+
(str = STR_NEW3(parser->tokp, len, enc, func), 1))) {
|
6110
|
+
rb_str_append(parser->delayed, str);
|
6111
|
+
}
|
6112
|
+
ripper_dispatch_delayed_token(parser, tSTRING_CONTENT);
|
6113
|
+
}
|
6114
|
+
lex_goto_eol(parser);
|
6115
|
+
#endif
|
5990
6116
|
restore:
|
5991
6117
|
heredoc_restore(lex_strterm);
|
5992
6118
|
lex_strterm = 0;
|
@@ -6026,7 +6152,6 @@ parser_here_document(struct parser_params *parser, NODE *here)
|
|
6026
6152
|
}
|
6027
6153
|
else {
|
6028
6154
|
/* int mb = ENC_CODERANGE_7BIT, *mbp = &mb;*/
|
6029
|
-
rb_encoding *enc = parser->enc;
|
6030
6155
|
newtok();
|
6031
6156
|
if (c == '#') {
|
6032
6157
|
switch (c = nextc()) {
|
@@ -6055,6 +6180,12 @@ parser_here_document(struct parser_params *parser, NODE *here)
|
|
6055
6180
|
} while (!whole_match_p(eos, len, indent));
|
6056
6181
|
str = STR_NEW3(tok(), toklen(), enc, func);
|
6057
6182
|
}
|
6183
|
+
#ifdef RIPPER
|
6184
|
+
if (!NIL_P(parser->delayed))
|
6185
|
+
ripper_dispatch_delayed_token(parser, tSTRING_CONTENT);
|
6186
|
+
lex_goto_eol(parser);
|
6187
|
+
ripper_dispatch_ignored_scan_event(parser, tHEREDOC_END);
|
6188
|
+
#endif
|
6058
6189
|
heredoc_restore(lex_strterm);
|
6059
6190
|
lex_strterm = NEW_STRTERM(-1, 0, 0);
|
6060
6191
|
set_yylval_str(str);
|
@@ -6063,45 +6194,50 @@ parser_here_document(struct parser_params *parser, NODE *here)
|
|
6063
6194
|
|
6064
6195
|
#include "lex.c"
|
6065
6196
|
|
6066
|
-
#ifndef RIPPER
|
6067
6197
|
static void
|
6068
6198
|
arg_ambiguous_gen(struct parser_params *parser)
|
6069
6199
|
{
|
6200
|
+
#ifndef RIPPER
|
6070
6201
|
rb_warning0("ambiguous first argument; put parentheses or even spaces");
|
6071
|
-
}
|
6072
6202
|
#else
|
6073
|
-
static void
|
6074
|
-
arg_ambiguous_gen(struct parser_params *parser)
|
6075
|
-
{
|
6076
6203
|
dispatch0(arg_ambiguous);
|
6204
|
+
#endif
|
6077
6205
|
}
|
6206
|
+
#define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
|
6207
|
+
|
6208
|
+
static ID
|
6209
|
+
formal_argument_gen(struct parser_params *parser, ID lhs)
|
6210
|
+
{
|
6211
|
+
#ifndef RIPPER
|
6212
|
+
if (!is_local_id(lhs))
|
6213
|
+
yyerror("formal argument must be local variable");
|
6078
6214
|
#endif
|
6079
|
-
|
6215
|
+
shadowing_lvar(lhs);
|
6216
|
+
return lhs;
|
6217
|
+
}
|
6080
6218
|
|
6081
6219
|
static int
|
6082
6220
|
lvar_defined_gen(struct parser_params *parser, ID id)
|
6083
6221
|
{
|
6084
|
-
#ifndef RIPPER
|
6085
6222
|
return (dyna_in_block() && dvar_defined(id)) || local_id(id);
|
6086
|
-
#else
|
6087
|
-
return 0;
|
6088
|
-
#endif
|
6089
6223
|
}
|
6090
6224
|
|
6091
6225
|
/* emacsen -*- hack */
|
6092
|
-
static
|
6093
|
-
parser_encode_length(struct parser_params *parser, const char *name,
|
6226
|
+
static long
|
6227
|
+
parser_encode_length(struct parser_params *parser, const char *name, long len)
|
6094
6228
|
{
|
6095
|
-
|
6229
|
+
long nlen;
|
6096
6230
|
|
6097
6231
|
if (len > 5 && name[nlen = len - 5] == '-') {
|
6098
6232
|
if (rb_memcicmp(name + nlen + 1, "unix", 4) == 0)
|
6099
6233
|
return nlen;
|
6100
6234
|
}
|
6101
|
-
if (len > 4 && name[nlen = len -
|
6235
|
+
if (len > 4 && name[nlen = len - 4] == '-') {
|
6102
6236
|
if (rb_memcicmp(name + nlen + 1, "dos", 3) == 0)
|
6103
6237
|
return nlen;
|
6104
|
-
if (rb_memcicmp(name + nlen + 1, "mac", 3) == 0
|
6238
|
+
if (rb_memcicmp(name + nlen + 1, "mac", 3) == 0 &&
|
6239
|
+
!(len == 8 && rb_memcicmp(name, "utf8-mac", len) == 0))
|
6240
|
+
/* exclude UTF8-MAC because the encoding named "UTF8" doesn't exist in Ruby */
|
6105
6241
|
return nlen;
|
6106
6242
|
}
|
6107
6243
|
return len;
|
@@ -6112,15 +6248,34 @@ parser_set_encode(struct parser_params *parser, const char *name)
|
|
6112
6248
|
{
|
6113
6249
|
int idx = rb_enc_find_index(name);
|
6114
6250
|
rb_encoding *enc;
|
6251
|
+
VALUE excargs[3];
|
6115
6252
|
|
6116
6253
|
if (idx < 0) {
|
6117
|
-
|
6254
|
+
VALUE rb_make_backtrace(void);
|
6255
|
+
VALUE rb_make_exception(int, VALUE*);
|
6256
|
+
|
6257
|
+
excargs[1] = rb_sprintf("unknown encoding name: %s", name);
|
6258
|
+
error:
|
6259
|
+
excargs[0] = rb_eArgError;
|
6260
|
+
excargs[2] = rb_make_backtrace();
|
6261
|
+
rb_ary_unshift(excargs[2], rb_sprintf("%s:%d", ruby_sourcefile, ruby_sourceline));
|
6262
|
+
rb_exc_raise(rb_make_exception(3, excargs));
|
6118
6263
|
}
|
6119
6264
|
enc = rb_enc_from_index(idx);
|
6120
6265
|
if (!rb_enc_asciicompat(enc)) {
|
6121
|
-
|
6266
|
+
excargs[1] = rb_sprintf("%s is not ASCII compatible", rb_enc_name(enc));
|
6267
|
+
goto error;
|
6122
6268
|
}
|
6123
6269
|
parser->enc = enc;
|
6270
|
+
#ifndef RIPPER
|
6271
|
+
if (ruby_debug_lines) {
|
6272
|
+
long i, n = RARRAY_LEN(ruby_debug_lines);
|
6273
|
+
const VALUE *p = RARRAY_PTR(ruby_debug_lines);
|
6274
|
+
for (i = 0; i < n; ++i) {
|
6275
|
+
rb_enc_associate_index(*p, idx);
|
6276
|
+
}
|
6277
|
+
}
|
6278
|
+
#endif
|
6124
6279
|
}
|
6125
6280
|
|
6126
6281
|
static int
|
@@ -6136,15 +6291,13 @@ comment_at_top(struct parser_params *parser)
|
|
6136
6291
|
}
|
6137
6292
|
|
6138
6293
|
#ifndef RIPPER
|
6139
|
-
typedef
|
6294
|
+
typedef long (*rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len);
|
6140
6295
|
typedef void (*rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val);
|
6141
6296
|
|
6142
6297
|
static void
|
6143
6298
|
magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
|
6144
6299
|
{
|
6145
6300
|
if (!comment_at_top(parser)) {
|
6146
|
-
rb_warning("encoding '%s' is ignored, valid only in the first line except for shebang line.",
|
6147
|
-
val);
|
6148
6301
|
return;
|
6149
6302
|
}
|
6150
6303
|
parser_set_encode(parser, val);
|
@@ -6163,9 +6316,9 @@ static const struct magic_comment magic_comments[] = {
|
|
6163
6316
|
#endif
|
6164
6317
|
|
6165
6318
|
static const char *
|
6166
|
-
magic_comment_marker(const char *str,
|
6319
|
+
magic_comment_marker(const char *str, long len)
|
6167
6320
|
{
|
6168
|
-
|
6321
|
+
long i = 2;
|
6169
6322
|
|
6170
6323
|
while (i < len) {
|
6171
6324
|
switch (str[i]) {
|
@@ -6196,7 +6349,7 @@ magic_comment_marker(const char *str, int len)
|
|
6196
6349
|
}
|
6197
6350
|
|
6198
6351
|
static int
|
6199
|
-
parser_magic_comment(struct parser_params *parser, const char *str,
|
6352
|
+
parser_magic_comment(struct parser_params *parser, const char *str, long len)
|
6200
6353
|
{
|
6201
6354
|
VALUE name = 0, val = 0;
|
6202
6355
|
const char *beg, *end, *vbeg, *vend;
|
@@ -6205,9 +6358,9 @@ parser_magic_comment(struct parser_params *parser, const char *str, int len)
|
|
6205
6358
|
MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
|
6206
6359
|
: ((_s) = STR_NEW((_p), (_n))))
|
6207
6360
|
|
6208
|
-
if (len <= 7) return
|
6209
|
-
if (!(beg = magic_comment_marker(str, len))) return
|
6210
|
-
if (!(end = magic_comment_marker(beg, str + len - beg))) return
|
6361
|
+
if (len <= 7) return FALSE;
|
6362
|
+
if (!(beg = magic_comment_marker(str, len))) return FALSE;
|
6363
|
+
if (!(end = magic_comment_marker(beg, str + len - beg))) return FALSE;
|
6211
6364
|
str = beg;
|
6212
6365
|
len = end - beg - 3;
|
6213
6366
|
|
@@ -6217,7 +6370,8 @@ parser_magic_comment(struct parser_params *parser, const char *str, int len)
|
|
6217
6370
|
const struct magic_comment *p = magic_comments;
|
6218
6371
|
#endif
|
6219
6372
|
char *s;
|
6220
|
-
int i
|
6373
|
+
int i;
|
6374
|
+
long n = 0;
|
6221
6375
|
|
6222
6376
|
for (; len > 0 && *str; str++, --len) {
|
6223
6377
|
switch (*str) {
|
@@ -6265,7 +6419,7 @@ parser_magic_comment(struct parser_params *parser, const char *str, int len)
|
|
6265
6419
|
str_copy(name, beg, n);
|
6266
6420
|
s = RSTRING_PTR(name);
|
6267
6421
|
for (i = 0; i < n; ++i) {
|
6268
|
-
if (
|
6422
|
+
if (s[i] == '-') s[i] = '_';
|
6269
6423
|
}
|
6270
6424
|
#ifndef RIPPER
|
6271
6425
|
do {
|
@@ -6278,13 +6432,13 @@ parser_magic_comment(struct parser_params *parser, const char *str, int len)
|
|
6278
6432
|
(*p->func)(parser, s, RSTRING_PTR(val));
|
6279
6433
|
break;
|
6280
6434
|
}
|
6281
|
-
} while (++p < magic_comments +
|
6435
|
+
} while (++p < magic_comments + numberof(magic_comments));
|
6282
6436
|
#else
|
6283
6437
|
dispatch2(magic_comment, name, val);
|
6284
6438
|
#endif
|
6285
6439
|
}
|
6286
6440
|
|
6287
|
-
return
|
6441
|
+
return TRUE;
|
6288
6442
|
}
|
6289
6443
|
|
6290
6444
|
static void
|
@@ -6356,7 +6510,23 @@ parser_prepare(struct parser_params *parser)
|
|
6356
6510
|
}
|
6357
6511
|
|
6358
6512
|
#define IS_ARG() (lex_state == EXPR_ARG || lex_state == EXPR_CMDARG)
|
6513
|
+
#define IS_END() (lex_state == EXPR_END || lex_state == EXPR_ENDARG || lex_state == EXPR_ENDFN)
|
6359
6514
|
#define IS_BEG() (lex_state == EXPR_BEG || lex_state == EXPR_MID || lex_state == EXPR_VALUE || lex_state == EXPR_CLASS)
|
6515
|
+
#define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
|
6516
|
+
|
6517
|
+
#ifndef RIPPER
|
6518
|
+
#define ambiguous_operator(op, syn) ( \
|
6519
|
+
rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
|
6520
|
+
rb_warning0("even though it seems like "syn""))
|
6521
|
+
#else
|
6522
|
+
#define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
|
6523
|
+
#endif
|
6524
|
+
#define warn_balanced(op, syn) \
|
6525
|
+
(last_state != EXPR_CLASS && last_state != EXPR_DOT && \
|
6526
|
+
last_state != EXPR_FNAME && last_state != EXPR_ENDFN && \
|
6527
|
+
last_state != EXPR_ENDARG && \
|
6528
|
+
space_seen && !ISSPACE(c) && \
|
6529
|
+
(ambiguous_operator(op, syn), 0))
|
6360
6530
|
|
6361
6531
|
static int
|
6362
6532
|
parser_yylex(struct parser_params *parser)
|
@@ -6368,7 +6538,7 @@ parser_yylex(struct parser_params *parser)
|
|
6368
6538
|
rb_encoding *enc;
|
6369
6539
|
int mb;
|
6370
6540
|
#ifdef RIPPER
|
6371
|
-
int fallthru =
|
6541
|
+
int fallthru = FALSE;
|
6372
6542
|
#endif
|
6373
6543
|
|
6374
6544
|
if (lex_strterm) {
|
@@ -6391,8 +6561,9 @@ parser_yylex(struct parser_params *parser)
|
|
6391
6561
|
return token;
|
6392
6562
|
}
|
6393
6563
|
cmd_state = command_start;
|
6394
|
-
command_start =
|
6564
|
+
command_start = FALSE;
|
6395
6565
|
retry:
|
6566
|
+
last_state = lex_state;
|
6396
6567
|
switch (c = nextc()) {
|
6397
6568
|
case '\0': /* NUL */
|
6398
6569
|
case '\004': /* ^D */
|
@@ -6403,7 +6574,7 @@ parser_yylex(struct parser_params *parser)
|
|
6403
6574
|
/* white spaces */
|
6404
6575
|
case ' ': case '\t': case '\f': case '\r':
|
6405
6576
|
case '\13': /* '\v' */
|
6406
|
-
space_seen
|
6577
|
+
space_seen = 1;
|
6407
6578
|
#ifdef RIPPER
|
6408
6579
|
while ((c = nextc())) {
|
6409
6580
|
switch (c) {
|
@@ -6430,7 +6601,7 @@ parser_yylex(struct parser_params *parser)
|
|
6430
6601
|
lex_p = lex_pend;
|
6431
6602
|
#ifdef RIPPER
|
6432
6603
|
ripper_dispatch_scan_event(parser, tCOMMENT);
|
6433
|
-
fallthru =
|
6604
|
+
fallthru = TRUE;
|
6434
6605
|
#endif
|
6435
6606
|
/* fall through */
|
6436
6607
|
case '\n':
|
@@ -6444,7 +6615,7 @@ parser_yylex(struct parser_params *parser)
|
|
6444
6615
|
if (!fallthru) {
|
6445
6616
|
ripper_dispatch_scan_event(parser, tIGNORED_NL);
|
6446
6617
|
}
|
6447
|
-
fallthru =
|
6618
|
+
fallthru = FALSE;
|
6448
6619
|
#endif
|
6449
6620
|
goto retry;
|
6450
6621
|
default:
|
@@ -6454,7 +6625,7 @@ parser_yylex(struct parser_params *parser)
|
|
6454
6625
|
switch (c) {
|
6455
6626
|
case ' ': case '\t': case '\f': case '\r':
|
6456
6627
|
case '\13': /* '\v' */
|
6457
|
-
space_seen
|
6628
|
+
space_seen = 1;
|
6458
6629
|
break;
|
6459
6630
|
case '.': {
|
6460
6631
|
if ((c = nextc()) != '.') {
|
@@ -6477,7 +6648,7 @@ parser_yylex(struct parser_params *parser)
|
|
6477
6648
|
}
|
6478
6649
|
}
|
6479
6650
|
normal_newline:
|
6480
|
-
command_start =
|
6651
|
+
command_start = TRUE;
|
6481
6652
|
lex_state = EXPR_BEG;
|
6482
6653
|
return '\n';
|
6483
6654
|
|
@@ -6498,7 +6669,7 @@ parser_yylex(struct parser_params *parser)
|
|
6498
6669
|
return tOP_ASGN;
|
6499
6670
|
}
|
6500
6671
|
pushback(c);
|
6501
|
-
if (
|
6672
|
+
if (IS_SPCARG(c)) {
|
6502
6673
|
rb_warning0("`*' interpreted as argument prefix");
|
6503
6674
|
c = tSTAR;
|
6504
6675
|
}
|
@@ -6506,6 +6677,7 @@ parser_yylex(struct parser_params *parser)
|
|
6506
6677
|
c = tSTAR;
|
6507
6678
|
}
|
6508
6679
|
else {
|
6680
|
+
warn_balanced("*", "argument prefix");
|
6509
6681
|
c = '*';
|
6510
6682
|
}
|
6511
6683
|
}
|
@@ -6542,7 +6714,7 @@ parser_yylex(struct parser_params *parser)
|
|
6542
6714
|
/* skip embedded rd document */
|
6543
6715
|
if (strncmp(lex_p, "begin", 5) == 0 && ISSPACE(lex_p[5])) {
|
6544
6716
|
#ifdef RIPPER
|
6545
|
-
int first_p =
|
6717
|
+
int first_p = TRUE;
|
6546
6718
|
|
6547
6719
|
lex_goto_eol(parser);
|
6548
6720
|
ripper_dispatch_scan_event(parser, tEMBDOC_BEG);
|
@@ -6553,7 +6725,7 @@ parser_yylex(struct parser_params *parser)
|
|
6553
6725
|
if (!first_p) {
|
6554
6726
|
ripper_dispatch_scan_event(parser, tEMBDOC);
|
6555
6727
|
}
|
6556
|
-
first_p =
|
6728
|
+
first_p = FALSE;
|
6557
6729
|
#endif
|
6558
6730
|
c = nextc();
|
6559
6731
|
if (c == -1) {
|
@@ -6597,12 +6769,12 @@ parser_yylex(struct parser_params *parser)
|
|
6597
6769
|
return '=';
|
6598
6770
|
|
6599
6771
|
case '<':
|
6772
|
+
last_state = lex_state;
|
6600
6773
|
c = nextc();
|
6601
6774
|
if (c == '<' &&
|
6602
|
-
lex_state != EXPR_END &&
|
6603
6775
|
lex_state != EXPR_DOT &&
|
6604
|
-
lex_state != EXPR_ENDARG &&
|
6605
6776
|
lex_state != EXPR_CLASS &&
|
6777
|
+
!IS_END() &&
|
6606
6778
|
(!IS_ARG() || space_seen)) {
|
6607
6779
|
int token = heredoc_identifier();
|
6608
6780
|
if (token) return token;
|
@@ -6627,6 +6799,7 @@ parser_yylex(struct parser_params *parser)
|
|
6627
6799
|
return tOP_ASGN;
|
6628
6800
|
}
|
6629
6801
|
pushback(c);
|
6802
|
+
warn_balanced("<<", "here document");
|
6630
6803
|
return tLSHFT;
|
6631
6804
|
}
|
6632
6805
|
pushback(c);
|
@@ -6660,7 +6833,7 @@ parser_yylex(struct parser_params *parser)
|
|
6660
6833
|
|
6661
6834
|
case '`':
|
6662
6835
|
if (lex_state == EXPR_FNAME) {
|
6663
|
-
lex_state =
|
6836
|
+
lex_state = EXPR_ENDFN;
|
6664
6837
|
return c;
|
6665
6838
|
}
|
6666
6839
|
if (lex_state == EXPR_DOT) {
|
@@ -6678,7 +6851,7 @@ parser_yylex(struct parser_params *parser)
|
|
6678
6851
|
return tSTRING_BEG;
|
6679
6852
|
|
6680
6853
|
case '?':
|
6681
|
-
if (
|
6854
|
+
if (IS_END()) {
|
6682
6855
|
lex_state = EXPR_VALUE;
|
6683
6856
|
return '?';
|
6684
6857
|
}
|
@@ -6769,7 +6942,7 @@ parser_yylex(struct parser_params *parser)
|
|
6769
6942
|
return tOP_ASGN;
|
6770
6943
|
}
|
6771
6944
|
pushback(c);
|
6772
|
-
if (
|
6945
|
+
if (IS_SPCARG(c)) {
|
6773
6946
|
rb_warning0("`&' interpreted as argument prefix");
|
6774
6947
|
c = tAMPER;
|
6775
6948
|
}
|
@@ -6777,6 +6950,7 @@ parser_yylex(struct parser_params *parser)
|
|
6777
6950
|
c = tAMPER;
|
6778
6951
|
}
|
6779
6952
|
else {
|
6953
|
+
warn_balanced("&", "argument prefix");
|
6780
6954
|
c = '&';
|
6781
6955
|
}
|
6782
6956
|
switch (lex_state) {
|
@@ -6827,9 +7001,7 @@ parser_yylex(struct parser_params *parser)
|
|
6827
7001
|
lex_state = EXPR_BEG;
|
6828
7002
|
return tOP_ASGN;
|
6829
7003
|
}
|
6830
|
-
if (IS_BEG() ||
|
6831
|
-
(IS_ARG() && space_seen && !ISSPACE(c))) {
|
6832
|
-
if (IS_ARG()) arg_ambiguous();
|
7004
|
+
if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous())) {
|
6833
7005
|
lex_state = EXPR_BEG;
|
6834
7006
|
pushback(c);
|
6835
7007
|
if (c != -1 && ISDIGIT(c)) {
|
@@ -6840,6 +7012,7 @@ parser_yylex(struct parser_params *parser)
|
|
6840
7012
|
}
|
6841
7013
|
lex_state = EXPR_BEG;
|
6842
7014
|
pushback(c);
|
7015
|
+
warn_balanced("+", "unary operator");
|
6843
7016
|
return '+';
|
6844
7017
|
|
6845
7018
|
case '-':
|
@@ -6861,9 +7034,7 @@ parser_yylex(struct parser_params *parser)
|
|
6861
7034
|
lex_state = EXPR_ARG;
|
6862
7035
|
return tLAMBDA;
|
6863
7036
|
}
|
6864
|
-
if (IS_BEG() ||
|
6865
|
-
(IS_ARG() && space_seen && !ISSPACE(c))) {
|
6866
|
-
if (IS_ARG()) arg_ambiguous();
|
7037
|
+
if (IS_BEG() || (IS_SPCARG(c) && arg_ambiguous())) {
|
6867
7038
|
lex_state = EXPR_BEG;
|
6868
7039
|
pushback(c);
|
6869
7040
|
if (c != -1 && ISDIGIT(c)) {
|
@@ -6873,6 +7044,7 @@ parser_yylex(struct parser_params *parser)
|
|
6873
7044
|
}
|
6874
7045
|
lex_state = EXPR_BEG;
|
6875
7046
|
pushback(c);
|
7047
|
+
warn_balanced("-", "unary operator");
|
6876
7048
|
return '-';
|
6877
7049
|
|
6878
7050
|
case '.':
|
@@ -6905,6 +7077,7 @@ parser_yylex(struct parser_params *parser)
|
|
6905
7077
|
c = nextc();
|
6906
7078
|
}
|
6907
7079
|
if (c == '0') {
|
7080
|
+
#define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
|
6908
7081
|
int start = toklen();
|
6909
7082
|
c = nextc();
|
6910
7083
|
if (c == 'x' || c == 'X') {
|
@@ -6925,10 +7098,10 @@ parser_yylex(struct parser_params *parser)
|
|
6925
7098
|
pushback(c);
|
6926
7099
|
tokfix();
|
6927
7100
|
if (toklen() == start) {
|
6928
|
-
|
7101
|
+
no_digits();
|
6929
7102
|
}
|
6930
7103
|
else if (nondigit) goto trailing_uc;
|
6931
|
-
|
7104
|
+
set_yylval_literal(rb_cstr_to_inum(tok(), 16, FALSE));
|
6932
7105
|
return tINTEGER;
|
6933
7106
|
}
|
6934
7107
|
if (c == 'b' || c == 'B') {
|
@@ -6949,10 +7122,10 @@ parser_yylex(struct parser_params *parser)
|
|
6949
7122
|
pushback(c);
|
6950
7123
|
tokfix();
|
6951
7124
|
if (toklen() == start) {
|
6952
|
-
|
7125
|
+
no_digits();
|
6953
7126
|
}
|
6954
7127
|
else if (nondigit) goto trailing_uc;
|
6955
|
-
|
7128
|
+
set_yylval_literal(rb_cstr_to_inum(tok(), 2, FALSE));
|
6956
7129
|
return tINTEGER;
|
6957
7130
|
}
|
6958
7131
|
if (c == 'd' || c == 'D') {
|
@@ -6973,10 +7146,10 @@ parser_yylex(struct parser_params *parser)
|
|
6973
7146
|
pushback(c);
|
6974
7147
|
tokfix();
|
6975
7148
|
if (toklen() == start) {
|
6976
|
-
|
7149
|
+
no_digits();
|
6977
7150
|
}
|
6978
7151
|
else if (nondigit) goto trailing_uc;
|
6979
|
-
|
7152
|
+
set_yylval_literal(rb_cstr_to_inum(tok(), 10, FALSE));
|
6980
7153
|
return tINTEGER;
|
6981
7154
|
}
|
6982
7155
|
if (c == '_') {
|
@@ -6987,7 +7160,7 @@ parser_yylex(struct parser_params *parser)
|
|
6987
7160
|
/* prefixed octal */
|
6988
7161
|
c = nextc();
|
6989
7162
|
if (c == -1 || c == '_' || !ISDIGIT(c)) {
|
6990
|
-
|
7163
|
+
no_digits();
|
6991
7164
|
}
|
6992
7165
|
}
|
6993
7166
|
if (c >= '0' && c <= '7') {
|
@@ -7008,7 +7181,7 @@ parser_yylex(struct parser_params *parser)
|
|
7008
7181
|
pushback(c);
|
7009
7182
|
tokfix();
|
7010
7183
|
if (nondigit) goto trailing_uc;
|
7011
|
-
|
7184
|
+
set_yylval_literal(rb_cstr_to_inum(tok(), 8, FALSE));
|
7012
7185
|
return tINTEGER;
|
7013
7186
|
}
|
7014
7187
|
if (nondigit) {
|
@@ -7045,7 +7218,7 @@ parser_yylex(struct parser_params *parser)
|
|
7045
7218
|
}
|
7046
7219
|
else {
|
7047
7220
|
int c0 = nextc();
|
7048
|
-
if (
|
7221
|
+
if (c0 == -1 || !ISDIGIT(c0)) {
|
7049
7222
|
pushback(c0);
|
7050
7223
|
goto decode_num;
|
7051
7224
|
}
|
@@ -7091,13 +7264,13 @@ parser_yylex(struct parser_params *parser)
|
|
7091
7264
|
|
7092
7265
|
decode_num:
|
7093
7266
|
pushback(c);
|
7094
|
-
tokfix();
|
7095
7267
|
if (nondigit) {
|
7096
7268
|
char tmp[30];
|
7097
7269
|
trailing_uc:
|
7098
|
-
|
7270
|
+
snprintf(tmp, sizeof(tmp), "trailing `%c' in number", nondigit);
|
7099
7271
|
yyerror(tmp);
|
7100
7272
|
}
|
7273
|
+
tokfix();
|
7101
7274
|
if (is_float) {
|
7102
7275
|
double d = strtod(tok(), 0);
|
7103
7276
|
if (errno == ERANGE) {
|
@@ -7107,7 +7280,7 @@ parser_yylex(struct parser_params *parser)
|
|
7107
7280
|
set_yylval_literal(DBL2NUM(d));
|
7108
7281
|
return tFLOAT;
|
7109
7282
|
}
|
7110
|
-
|
7283
|
+
set_yylval_literal(rb_cstr_to_inum(tok(), 10, FALSE));
|
7111
7284
|
return tINTEGER;
|
7112
7285
|
}
|
7113
7286
|
|
@@ -7118,7 +7291,7 @@ parser_yylex(struct parser_params *parser)
|
|
7118
7291
|
COND_LEXPOP();
|
7119
7292
|
CMDARG_LEXPOP();
|
7120
7293
|
if (c == ')')
|
7121
|
-
lex_state =
|
7294
|
+
lex_state = EXPR_ENDFN;
|
7122
7295
|
else
|
7123
7296
|
lex_state = EXPR_ENDARG;
|
7124
7297
|
return c;
|
@@ -7126,16 +7299,16 @@ parser_yylex(struct parser_params *parser)
|
|
7126
7299
|
case ':':
|
7127
7300
|
c = nextc();
|
7128
7301
|
if (c == ':') {
|
7129
|
-
if (IS_BEG() ||
|
7130
|
-
lex_state == EXPR_CLASS || (IS_ARG() && space_seen)) {
|
7302
|
+
if (IS_BEG() || lex_state == EXPR_CLASS || IS_SPCARG(-1)) {
|
7131
7303
|
lex_state = EXPR_BEG;
|
7132
7304
|
return tCOLON3;
|
7133
7305
|
}
|
7134
7306
|
lex_state = EXPR_DOT;
|
7135
7307
|
return tCOLON2;
|
7136
7308
|
}
|
7137
|
-
if (
|
7309
|
+
if (IS_END() || ISSPACE(c)) {
|
7138
7310
|
pushback(c);
|
7311
|
+
warn_balanced(":", "symbol literal");
|
7139
7312
|
lex_state = EXPR_BEG;
|
7140
7313
|
return ':';
|
7141
7314
|
}
|
@@ -7164,12 +7337,10 @@ parser_yylex(struct parser_params *parser)
|
|
7164
7337
|
return tOP_ASGN;
|
7165
7338
|
}
|
7166
7339
|
pushback(c);
|
7167
|
-
if (
|
7168
|
-
|
7169
|
-
|
7170
|
-
|
7171
|
-
return tREGEXP_BEG;
|
7172
|
-
}
|
7340
|
+
if (IS_SPCARG(c)) {
|
7341
|
+
arg_ambiguous();
|
7342
|
+
lex_strterm = NEW_STRTERM(str_regexp, '/', 0);
|
7343
|
+
return tREGEXP_BEG;
|
7173
7344
|
}
|
7174
7345
|
switch (lex_state) {
|
7175
7346
|
case EXPR_FNAME: case EXPR_DOT:
|
@@ -7177,6 +7348,7 @@ parser_yylex(struct parser_params *parser)
|
|
7177
7348
|
default:
|
7178
7349
|
lex_state = EXPR_BEG; break;
|
7179
7350
|
}
|
7351
|
+
warn_balanced("/", "regexp literal");
|
7180
7352
|
return '/';
|
7181
7353
|
|
7182
7354
|
case '^':
|
@@ -7196,7 +7368,7 @@ parser_yylex(struct parser_params *parser)
|
|
7196
7368
|
|
7197
7369
|
case ';':
|
7198
7370
|
lex_state = EXPR_BEG;
|
7199
|
-
command_start =
|
7371
|
+
command_start = TRUE;
|
7200
7372
|
return ';';
|
7201
7373
|
|
7202
7374
|
case ',':
|
@@ -7219,10 +7391,8 @@ parser_yylex(struct parser_params *parser)
|
|
7219
7391
|
if (IS_BEG()) {
|
7220
7392
|
c = tLPAREN;
|
7221
7393
|
}
|
7222
|
-
else if (
|
7223
|
-
|
7224
|
-
c = tLPAREN_ARG;
|
7225
|
-
}
|
7394
|
+
else if (IS_SPCARG(-1)) {
|
7395
|
+
c = tLPAREN_ARG;
|
7226
7396
|
}
|
7227
7397
|
paren_nest++;
|
7228
7398
|
COND_PUSH(0);
|
@@ -7260,9 +7430,11 @@ parser_yylex(struct parser_params *parser)
|
|
7260
7430
|
lex_state = EXPR_BEG;
|
7261
7431
|
lpar_beg = 0;
|
7262
7432
|
--paren_nest;
|
7433
|
+
COND_PUSH(0);
|
7434
|
+
CMDARG_PUSH(0);
|
7263
7435
|
return tLAMBEG;
|
7264
7436
|
}
|
7265
|
-
if (IS_ARG() || lex_state == EXPR_END)
|
7437
|
+
if (IS_ARG() || lex_state == EXPR_END || lex_state == EXPR_ENDFN)
|
7266
7438
|
c = '{'; /* block (primary) */
|
7267
7439
|
else if (lex_state == EXPR_ENDARG)
|
7268
7440
|
c = tLBRACE_ARG; /* block (expr) */
|
@@ -7271,7 +7443,7 @@ parser_yylex(struct parser_params *parser)
|
|
7271
7443
|
COND_PUSH(0);
|
7272
7444
|
CMDARG_PUSH(0);
|
7273
7445
|
lex_state = EXPR_BEG;
|
7274
|
-
if (c != tLBRACE) command_start =
|
7446
|
+
if (c != tLBRACE) command_start = TRUE;
|
7275
7447
|
return c;
|
7276
7448
|
|
7277
7449
|
case '\\':
|
@@ -7359,7 +7531,7 @@ parser_yylex(struct parser_params *parser)
|
|
7359
7531
|
lex_state = EXPR_BEG;
|
7360
7532
|
return tOP_ASGN;
|
7361
7533
|
}
|
7362
|
-
if (
|
7534
|
+
if (IS_SPCARG(c)) {
|
7363
7535
|
goto quotation;
|
7364
7536
|
}
|
7365
7537
|
switch (lex_state) {
|
@@ -7369,10 +7541,10 @@ parser_yylex(struct parser_params *parser)
|
|
7369
7541
|
lex_state = EXPR_BEG; break;
|
7370
7542
|
}
|
7371
7543
|
pushback(c);
|
7544
|
+
warn_balanced("%%", "string literal");
|
7372
7545
|
return '%';
|
7373
7546
|
|
7374
7547
|
case '$':
|
7375
|
-
last_state = lex_state;
|
7376
7548
|
lex_state = EXPR_END;
|
7377
7549
|
newtok();
|
7378
7550
|
c = nextc();
|
@@ -7406,7 +7578,7 @@ parser_yylex(struct parser_params *parser)
|
|
7406
7578
|
tokadd('$');
|
7407
7579
|
tokadd(c);
|
7408
7580
|
tokfix();
|
7409
|
-
|
7581
|
+
set_yylval_name(rb_intern(tok()));
|
7410
7582
|
return tGVAR;
|
7411
7583
|
|
7412
7584
|
case '-':
|
@@ -7421,7 +7593,7 @@ parser_yylex(struct parser_params *parser)
|
|
7421
7593
|
}
|
7422
7594
|
gvar:
|
7423
7595
|
tokfix();
|
7424
|
-
|
7596
|
+
set_yylval_name(rb_intern(tok()));
|
7425
7597
|
return tGVAR;
|
7426
7598
|
|
7427
7599
|
case '&': /* $&: last match */
|
@@ -7570,12 +7742,11 @@ parser_yylex(struct parser_params *parser)
|
|
7570
7742
|
}
|
7571
7743
|
|
7572
7744
|
if ((lex_state == EXPR_BEG && !cmd_state) ||
|
7573
|
-
|
7574
|
-
lex_state == EXPR_CMDARG) {
|
7745
|
+
IS_ARG()) {
|
7575
7746
|
if (peek(':') && !(lex_p + 1 < lex_pend && lex_p[1] == ':')) {
|
7576
7747
|
lex_state = EXPR_BEG;
|
7577
7748
|
nextc();
|
7578
|
-
|
7749
|
+
set_yylval_name(TOK_INTERN(!ENC_SINGLE(mb)));
|
7579
7750
|
return tLABEL;
|
7580
7751
|
}
|
7581
7752
|
}
|
@@ -7588,11 +7759,11 @@ parser_yylex(struct parser_params *parser)
|
|
7588
7759
|
enum lex_state_e state = lex_state;
|
7589
7760
|
lex_state = kw->state;
|
7590
7761
|
if (state == EXPR_FNAME) {
|
7591
|
-
|
7762
|
+
set_yylval_name(rb_intern(kw->name));
|
7592
7763
|
return kw->id[0];
|
7593
7764
|
}
|
7594
7765
|
if (kw->id[0] == keyword_do) {
|
7595
|
-
command_start =
|
7766
|
+
command_start = TRUE;
|
7596
7767
|
if (lpar_beg && lpar_beg == paren_nest) {
|
7597
7768
|
lpar_beg = 0;
|
7598
7769
|
--paren_nest;
|
@@ -7625,6 +7796,9 @@ parser_yylex(struct parser_params *parser)
|
|
7625
7796
|
lex_state = EXPR_ARG;
|
7626
7797
|
}
|
7627
7798
|
}
|
7799
|
+
else if (lex_state == EXPR_FNAME) {
|
7800
|
+
lex_state = EXPR_ENDFN;
|
7801
|
+
}
|
7628
7802
|
else {
|
7629
7803
|
lex_state = EXPR_END;
|
7630
7804
|
}
|
@@ -7632,7 +7806,7 @@ parser_yylex(struct parser_params *parser)
|
|
7632
7806
|
{
|
7633
7807
|
ID ident = TOK_INTERN(!ENC_SINGLE(mb));
|
7634
7808
|
|
7635
|
-
|
7809
|
+
set_yylval_name(ident);
|
7636
7810
|
if (last_state != EXPR_DOT && is_local_id(ident) && lvar_defined(ident)) {
|
7637
7811
|
lex_state = EXPR_END;
|
7638
7812
|
}
|
@@ -7823,6 +7997,7 @@ list_concat_gen(struct parser_params *parser, NODE *head, NODE *tail)
|
|
7823
7997
|
static int
|
7824
7998
|
literal_concat0(struct parser_params *parser, VALUE head, VALUE tail)
|
7825
7999
|
{
|
8000
|
+
if (NIL_P(tail)) return 1;
|
7826
8001
|
if (!rb_enc_compatible(head, tail)) {
|
7827
8002
|
compile_error(PARSER_ARG "string literal encodings differ (%s / %s)",
|
7828
8003
|
rb_enc_name(rb_enc_get(head)),
|
@@ -7846,7 +8021,7 @@ literal_concat_gen(struct parser_params *parser, NODE *head, NODE *tail)
|
|
7846
8021
|
|
7847
8022
|
htype = nd_type(head);
|
7848
8023
|
if (htype == NODE_EVSTR) {
|
7849
|
-
NODE *node = NEW_DSTR(
|
8024
|
+
NODE *node = NEW_DSTR(Qnil);
|
7850
8025
|
head = list_append(node, head);
|
7851
8026
|
}
|
7852
8027
|
switch (nd_type(tail)) {
|
@@ -7873,6 +8048,12 @@ literal_concat_gen(struct parser_params *parser, NODE *head, NODE *tail)
|
|
7873
8048
|
rb_gc_force_recycle((VALUE)head);
|
7874
8049
|
head = tail;
|
7875
8050
|
}
|
8051
|
+
else if (NIL_P(tail->nd_lit)) {
|
8052
|
+
head->nd_alen += tail->nd_alen - 1;
|
8053
|
+
head->nd_next->nd_end->nd_next = tail->nd_next;
|
8054
|
+
head->nd_next->nd_end = tail->nd_next->nd_end;
|
8055
|
+
rb_gc_force_recycle((VALUE)tail);
|
8056
|
+
}
|
7876
8057
|
else {
|
7877
8058
|
nd_set_type(tail, NODE_ARRAY);
|
7878
8059
|
tail->nd_head = NEW_STR(tail->nd_lit);
|
@@ -7895,7 +8076,7 @@ static NODE *
|
|
7895
8076
|
evstr2dstr_gen(struct parser_params *parser, NODE *node)
|
7896
8077
|
{
|
7897
8078
|
if (nd_type(node) == NODE_EVSTR) {
|
7898
|
-
node = list_append(NEW_DSTR(
|
8079
|
+
node = list_append(NEW_DSTR(Qnil), node);
|
7899
8080
|
}
|
7900
8081
|
return node;
|
7901
8082
|
}
|
@@ -8009,11 +8190,24 @@ gettable_gen(struct parser_params *parser, ID id)
|
|
8009
8190
|
compile_error(PARSER_ARG "identifier %s is not valid to get", rb_id2name(id));
|
8010
8191
|
return 0;
|
8011
8192
|
}
|
8193
|
+
#endif /* !RIPPER */
|
8012
8194
|
|
8195
|
+
#ifdef RIPPER
|
8196
|
+
static VALUE
|
8197
|
+
assignable_gen(struct parser_params *parser, VALUE lhs)
|
8198
|
+
#else
|
8013
8199
|
static NODE*
|
8014
8200
|
assignable_gen(struct parser_params *parser, ID id, NODE *val)
|
8201
|
+
#endif
|
8015
8202
|
{
|
8016
|
-
|
8203
|
+
#ifdef RIPPER
|
8204
|
+
ID id = get_id(lhs);
|
8205
|
+
# define assignable_result(x) get_value(lhs)
|
8206
|
+
# define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
|
8207
|
+
#else
|
8208
|
+
# define assignable_result(x) x
|
8209
|
+
#endif
|
8210
|
+
if (!id) return assignable_result(0);
|
8017
8211
|
if (id == keyword_self) {
|
8018
8212
|
yyerror("Can't change the value of self");
|
8019
8213
|
}
|
@@ -8038,53 +8232,55 @@ assignable_gen(struct parser_params *parser, ID id, NODE *val)
|
|
8038
8232
|
else if (is_local_id(id)) {
|
8039
8233
|
if (dyna_in_block()) {
|
8040
8234
|
if (dvar_curr(id)) {
|
8041
|
-
return NEW_DASGN_CURR(id, val);
|
8235
|
+
return assignable_result(NEW_DASGN_CURR(id, val));
|
8042
8236
|
}
|
8043
8237
|
else if (dvar_defined(id)) {
|
8044
|
-
return NEW_DASGN(id, val);
|
8238
|
+
return assignable_result(NEW_DASGN(id, val));
|
8045
8239
|
}
|
8046
8240
|
else if (local_id(id)) {
|
8047
|
-
return NEW_LASGN(id, val);
|
8241
|
+
return assignable_result(NEW_LASGN(id, val));
|
8048
8242
|
}
|
8049
|
-
else{
|
8243
|
+
else {
|
8050
8244
|
dyna_var(id);
|
8051
|
-
return NEW_DASGN_CURR(id, val);
|
8245
|
+
return assignable_result(NEW_DASGN_CURR(id, val));
|
8052
8246
|
}
|
8053
8247
|
}
|
8054
8248
|
else {
|
8055
8249
|
if (!local_id(id)) {
|
8056
8250
|
local_var(id);
|
8057
8251
|
}
|
8058
|
-
return NEW_LASGN(id, val);
|
8252
|
+
return assignable_result(NEW_LASGN(id, val));
|
8059
8253
|
}
|
8060
8254
|
}
|
8061
8255
|
else if (is_global_id(id)) {
|
8062
|
-
return NEW_GASGN(id, val);
|
8256
|
+
return assignable_result(NEW_GASGN(id, val));
|
8063
8257
|
}
|
8064
8258
|
else if (is_instance_id(id)) {
|
8065
|
-
return NEW_IASGN(id, val);
|
8259
|
+
return assignable_result(NEW_IASGN(id, val));
|
8066
8260
|
}
|
8067
8261
|
else if (is_const_id(id)) {
|
8068
|
-
if (in_def
|
8069
|
-
|
8070
|
-
|
8262
|
+
if (!in_def && !in_single)
|
8263
|
+
return assignable_result(NEW_CDECL(id, val, 0));
|
8264
|
+
yyerror("dynamic constant assignment");
|
8071
8265
|
}
|
8072
8266
|
else if (is_class_id(id)) {
|
8073
|
-
return NEW_CVASGN(id, val);
|
8267
|
+
return assignable_result(NEW_CVASGN(id, val));
|
8074
8268
|
}
|
8075
8269
|
else {
|
8076
8270
|
compile_error(PARSER_ARG "identifier %s is not valid to set", rb_id2name(id));
|
8077
8271
|
}
|
8078
|
-
return 0;
|
8272
|
+
return assignable_result(0);
|
8273
|
+
#undef assignable_result
|
8274
|
+
#undef parser_yyerror
|
8079
8275
|
}
|
8080
8276
|
|
8081
|
-
static
|
8277
|
+
static ID
|
8082
8278
|
shadowing_lvar_gen(struct parser_params *parser, ID name)
|
8083
8279
|
{
|
8084
8280
|
ID uscore;
|
8085
8281
|
|
8086
8282
|
CONST_ID(uscore, "_");
|
8087
|
-
if (uscore == name) return;
|
8283
|
+
if (uscore == name) return name;
|
8088
8284
|
if (dyna_in_block()) {
|
8089
8285
|
if (dvar_curr(name)) {
|
8090
8286
|
yyerror("duplicated argument name");
|
@@ -8099,6 +8295,7 @@ shadowing_lvar_gen(struct parser_params *parser, ID name)
|
|
8099
8295
|
yyerror("duplicated argument name");
|
8100
8296
|
}
|
8101
8297
|
}
|
8298
|
+
return name;
|
8102
8299
|
}
|
8103
8300
|
|
8104
8301
|
static void
|
@@ -8114,6 +8311,7 @@ new_bv_gen(struct parser_params *parser, ID name)
|
|
8114
8311
|
dyna_var(name);
|
8115
8312
|
}
|
8116
8313
|
|
8314
|
+
#ifndef RIPPER
|
8117
8315
|
static NODE *
|
8118
8316
|
aryset_gen(struct parser_params *parser, NODE *recv, NODE *idx)
|
8119
8317
|
{
|
@@ -8165,7 +8363,10 @@ arg_concat_gen(struct parser_params *parser, NODE *node1, NODE *node2)
|
|
8165
8363
|
if (!node2) return node1;
|
8166
8364
|
switch (nd_type(node1)) {
|
8167
8365
|
case NODE_BLOCK_PASS:
|
8168
|
-
|
8366
|
+
if (node1->nd_head)
|
8367
|
+
node1->nd_head = arg_concat(node1->nd_head, node2);
|
8368
|
+
else
|
8369
|
+
node1->nd_head = NEW_LIST(node2);
|
8169
8370
|
return node1;
|
8170
8371
|
case NODE_ARGSPUSH:
|
8171
8372
|
if (nd_type(node2) != NODE_ARRAY) break;
|
@@ -8251,7 +8452,7 @@ value_expr_gen(struct parser_params *parser, NODE *node)
|
|
8251
8452
|
case NODE_DEFN:
|
8252
8453
|
case NODE_DEFS:
|
8253
8454
|
parser_warning(node, "void value expression");
|
8254
|
-
return
|
8455
|
+
return FALSE;
|
8255
8456
|
|
8256
8457
|
case NODE_RETURN:
|
8257
8458
|
case NODE_BREAK:
|
@@ -8260,7 +8461,7 @@ value_expr_gen(struct parser_params *parser, NODE *node)
|
|
8260
8461
|
case NODE_RETRY:
|
8261
8462
|
if (!cond) yyerror("void value expression");
|
8262
8463
|
/* or "control never reach"? */
|
8263
|
-
return
|
8464
|
+
return FALSE;
|
8264
8465
|
|
8265
8466
|
case NODE_BLOCK:
|
8266
8467
|
while (node->nd_next) {
|
@@ -8282,7 +8483,7 @@ value_expr_gen(struct parser_params *parser, NODE *node)
|
|
8282
8483
|
node = node->nd_body;
|
8283
8484
|
break;
|
8284
8485
|
}
|
8285
|
-
if (!value_expr(node->nd_body)) return
|
8486
|
+
if (!value_expr(node->nd_body)) return FALSE;
|
8286
8487
|
node = node->nd_else;
|
8287
8488
|
break;
|
8288
8489
|
|
@@ -8293,11 +8494,11 @@ value_expr_gen(struct parser_params *parser, NODE *node)
|
|
8293
8494
|
break;
|
8294
8495
|
|
8295
8496
|
default:
|
8296
|
-
return
|
8497
|
+
return TRUE;
|
8297
8498
|
}
|
8298
8499
|
}
|
8299
8500
|
|
8300
|
-
return
|
8501
|
+
return TRUE;
|
8301
8502
|
}
|
8302
8503
|
|
8303
8504
|
static void
|
@@ -8428,6 +8629,7 @@ reduce_nodes_gen(struct parser_params *parser, NODE **body)
|
|
8428
8629
|
(reduce_nodes(&node->n1), body = &node->n2, 1))
|
8429
8630
|
|
8430
8631
|
while (node) {
|
8632
|
+
int newline = (int)(node->flags & NODE_FL_NEWLINE);
|
8431
8633
|
switch (nd_type(node)) {
|
8432
8634
|
end:
|
8433
8635
|
case NODE_NIL:
|
@@ -8435,9 +8637,11 @@ reduce_nodes_gen(struct parser_params *parser, NODE **body)
|
|
8435
8637
|
return;
|
8436
8638
|
case NODE_RETURN:
|
8437
8639
|
*body = node = node->nd_stts;
|
8640
|
+
if (newline && node) node->flags |= NODE_FL_NEWLINE;
|
8438
8641
|
continue;
|
8439
8642
|
case NODE_BEGIN:
|
8440
8643
|
*body = node = node->nd_body;
|
8644
|
+
if (newline && node) node->flags |= NODE_FL_NEWLINE;
|
8441
8645
|
continue;
|
8442
8646
|
case NODE_BLOCK:
|
8443
8647
|
body = &node->nd_end->nd_head;
|
@@ -8461,6 +8665,7 @@ reduce_nodes_gen(struct parser_params *parser, NODE **body)
|
|
8461
8665
|
return;
|
8462
8666
|
}
|
8463
8667
|
node = *body;
|
8668
|
+
if (newline && node) node->flags |= NODE_FL_NEWLINE;
|
8464
8669
|
}
|
8465
8670
|
|
8466
8671
|
#undef subnodes
|
@@ -8476,6 +8681,7 @@ assign_in_cond(struct parser_params *parser, NODE *node)
|
|
8476
8681
|
|
8477
8682
|
case NODE_LASGN:
|
8478
8683
|
case NODE_DASGN:
|
8684
|
+
case NODE_DASGN_CURR:
|
8479
8685
|
case NODE_GASGN:
|
8480
8686
|
case NODE_IASGN:
|
8481
8687
|
break;
|
@@ -8484,6 +8690,7 @@ assign_in_cond(struct parser_params *parser, NODE *node)
|
|
8484
8690
|
return 0;
|
8485
8691
|
}
|
8486
8692
|
|
8693
|
+
if (!node->nd_value) return 1;
|
8487
8694
|
switch (nd_type(node->nd_value)) {
|
8488
8695
|
case NODE_LIT:
|
8489
8696
|
case NODE_STR:
|
@@ -8534,7 +8741,7 @@ fixup_nodes(NODE **rootnode)
|
|
8534
8741
|
case NODE_DOT2:
|
8535
8742
|
case NODE_DOT3:
|
8536
8743
|
val = rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
|
8537
|
-
type == NODE_DOT3
|
8744
|
+
type == NODE_DOT3);
|
8538
8745
|
rb_gc_force_recycle((VALUE)head->nd_beg);
|
8539
8746
|
rb_gc_force_recycle((VALUE)head->nd_end);
|
8540
8747
|
nd_set_type(head, NODE_LIT);
|
@@ -8653,9 +8860,9 @@ static NODE*
|
|
8653
8860
|
logop_gen(struct parser_params *parser, enum node_type type, NODE *left, NODE *right)
|
8654
8861
|
{
|
8655
8862
|
value_expr(left);
|
8656
|
-
if (left && nd_type(left) == type) {
|
8863
|
+
if (left && (enum node_type)nd_type(left) == type) {
|
8657
8864
|
NODE *node = left, *second;
|
8658
|
-
while ((second = node->nd_2nd) != 0 && nd_type(second) == type) {
|
8865
|
+
while ((second = node->nd_2nd) != 0 && (enum node_type)nd_type(second) == type) {
|
8659
8866
|
node = second;
|
8660
8867
|
}
|
8661
8868
|
node->nd_2nd = NEW_NODE(type, second, right, 0);
|
@@ -8759,6 +8966,7 @@ new_args_gen(struct parser_params *parser, NODE *m, NODE *o, ID r, NODE *p, ID b
|
|
8759
8966
|
ruby_sourceline = saved_line;
|
8760
8967
|
return node;
|
8761
8968
|
}
|
8969
|
+
#endif /* !RIPPER */
|
8762
8970
|
|
8763
8971
|
static void
|
8764
8972
|
local_push_gen(struct parser_params *parser, int inherit_dvars)
|
@@ -8782,6 +8990,7 @@ local_pop_gen(struct parser_params *parser)
|
|
8782
8990
|
lvtbl = local;
|
8783
8991
|
}
|
8784
8992
|
|
8993
|
+
#ifndef RIPPER
|
8785
8994
|
static ID*
|
8786
8995
|
vtable_tblcpy(ID *buf, const struct vtable *src)
|
8787
8996
|
{
|
@@ -8810,6 +9019,7 @@ local_tbl_gen(struct parser_params *parser)
|
|
8810
9019
|
buf[0] = cnt;
|
8811
9020
|
return buf;
|
8812
9021
|
}
|
9022
|
+
#endif
|
8813
9023
|
|
8814
9024
|
static int
|
8815
9025
|
arg_var_gen(struct parser_params *parser, ID id)
|
@@ -8847,15 +9057,16 @@ local_id_gen(struct parser_params *parser, ID id)
|
|
8847
9057
|
}
|
8848
9058
|
}
|
8849
9059
|
|
8850
|
-
static
|
9060
|
+
static const struct vtable *
|
8851
9061
|
dyna_push_gen(struct parser_params *parser)
|
8852
9062
|
{
|
8853
9063
|
lvtbl->args = vtable_alloc(lvtbl->args);
|
8854
9064
|
lvtbl->vars = vtable_alloc(lvtbl->vars);
|
9065
|
+
return lvtbl->args;
|
8855
9066
|
}
|
8856
9067
|
|
8857
9068
|
static void
|
8858
|
-
|
9069
|
+
dyna_pop_1(struct parser_params *parser)
|
8859
9070
|
{
|
8860
9071
|
struct vtable *tmp;
|
8861
9072
|
|
@@ -8867,6 +9078,20 @@ dyna_pop_gen(struct parser_params *parser)
|
|
8867
9078
|
vtable_free(tmp);
|
8868
9079
|
}
|
8869
9080
|
|
9081
|
+
static void
|
9082
|
+
dyna_pop_gen(struct parser_params *parser, const struct vtable *lvargs)
|
9083
|
+
{
|
9084
|
+
while (lvtbl->args != lvargs) {
|
9085
|
+
dyna_pop_1(parser);
|
9086
|
+
if (!lvtbl->args) {
|
9087
|
+
struct local_vars *local = lvtbl->prev;
|
9088
|
+
xfree(lvtbl);
|
9089
|
+
lvtbl = local;
|
9090
|
+
}
|
9091
|
+
}
|
9092
|
+
dyna_pop_1(parser);
|
9093
|
+
}
|
9094
|
+
|
8870
9095
|
static int
|
8871
9096
|
dyna_in_block_gen(struct parser_params *parser)
|
8872
9097
|
{
|
@@ -8906,7 +9131,8 @@ dvar_curr_gen(struct parser_params *parser, ID id)
|
|
8906
9131
|
vtable_included(lvtbl->vars, id));
|
8907
9132
|
}
|
8908
9133
|
|
8909
|
-
|
9134
|
+
#ifndef RIPPER
|
9135
|
+
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline);
|
8910
9136
|
VALUE rb_reg_check_preprocess(VALUE);
|
8911
9137
|
|
8912
9138
|
static void
|
@@ -8948,17 +9174,19 @@ reg_fragment_setenc_gen(struct parser_params* parser, VALUE str, int options)
|
|
8948
9174
|
c, rb_enc_name(rb_enc_get(str)));
|
8949
9175
|
}
|
8950
9176
|
|
8951
|
-
static
|
9177
|
+
static int
|
8952
9178
|
reg_fragment_check_gen(struct parser_params* parser, VALUE str, int options)
|
8953
9179
|
{
|
8954
9180
|
VALUE err;
|
8955
|
-
|
9181
|
+
reg_fragment_setenc(str, options);
|
8956
9182
|
err = rb_reg_check_preprocess(str);
|
8957
9183
|
if (err != Qnil) {
|
8958
9184
|
err = rb_obj_as_string(err);
|
8959
9185
|
compile_error(PARSER_ARG "%s", RSTRING_PTR(err));
|
8960
9186
|
RB_GC_GUARD(err);
|
9187
|
+
return 0;
|
8961
9188
|
}
|
9189
|
+
return 1;
|
8962
9190
|
}
|
8963
9191
|
|
8964
9192
|
typedef struct {
|
@@ -8976,7 +9204,7 @@ reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end,
|
|
8976
9204
|
reg_named_capture_assign_t *arg = (reg_named_capture_assign_t*)arg0;
|
8977
9205
|
struct parser_params* parser = arg->parser;
|
8978
9206
|
rb_encoding *enc = arg->enc;
|
8979
|
-
|
9207
|
+
long len = name_end - name;
|
8980
9208
|
const char *s = (const char *)name;
|
8981
9209
|
ID var;
|
8982
9210
|
|
@@ -8988,7 +9216,8 @@ reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end,
|
|
8988
9216
|
}
|
8989
9217
|
|
8990
9218
|
if (!len || (*name != '_' && ISASCII(*name) && !rb_enc_islower(*name, enc)) ||
|
8991
|
-
|
9219
|
+
(len < MAX_WORD_LENGTH && rb_reserved_word(s, (int)len)) ||
|
9220
|
+
!rb_enc_symname2_p(s, len, enc)) {
|
8992
9221
|
return ST_CONTINUE;
|
8993
9222
|
}
|
8994
9223
|
var = rb_intern3(s, len, enc);
|
@@ -9048,7 +9277,7 @@ reg_compile_gen(struct parser_params* parser, VALUE str, int options)
|
|
9048
9277
|
|
9049
9278
|
reg_fragment_setenc(str, options);
|
9050
9279
|
err = rb_errinfo();
|
9051
|
-
re = rb_reg_compile(str, options & RE_OPTION_MASK);
|
9280
|
+
re = rb_reg_compile(str, options & RE_OPTION_MASK, ruby_sourcefile, ruby_sourceline);
|
9052
9281
|
if (NIL_P(re)) {
|
9053
9282
|
ID mesg = rb_intern("mesg");
|
9054
9283
|
VALUE m = rb_attr_get(rb_errinfo(), mesg);
|
@@ -9078,7 +9307,7 @@ rb_parser_append_print(VALUE vparser, NODE *node)
|
|
9078
9307
|
|
9079
9308
|
if (!node) return node;
|
9080
9309
|
|
9081
|
-
|
9310
|
+
TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser);
|
9082
9311
|
|
9083
9312
|
node = node->nd_body;
|
9084
9313
|
|
@@ -9110,7 +9339,7 @@ rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
|
|
9110
9339
|
|
9111
9340
|
if (!node) return node;
|
9112
9341
|
|
9113
|
-
|
9342
|
+
TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser);
|
9114
9343
|
|
9115
9344
|
node = node->nd_body;
|
9116
9345
|
|
@@ -9168,14 +9397,20 @@ static const struct {
|
|
9168
9397
|
{tCOLON2, "::"},
|
9169
9398
|
};
|
9170
9399
|
|
9171
|
-
#define op_tbl_count (
|
9400
|
+
#define op_tbl_count numberof(op_tbl)
|
9401
|
+
|
9402
|
+
#ifndef ENABLE_SELECTOR_NAMESPACE
|
9403
|
+
#define ENABLE_SELECTOR_NAMESPACE 0
|
9404
|
+
#endif
|
9172
9405
|
|
9173
9406
|
static struct symbols {
|
9174
9407
|
ID last_id;
|
9175
9408
|
st_table *sym_id;
|
9176
9409
|
st_table *id_str;
|
9410
|
+
#if ENABLE_SELECTOR_NAMESPACE
|
9177
9411
|
st_table *ivar2_id;
|
9178
9412
|
st_table *id_ivar2;
|
9413
|
+
#endif
|
9179
9414
|
VALUE op_sym[tLAST_TOKEN];
|
9180
9415
|
} global_symbols = {tLAST_ID};
|
9181
9416
|
|
@@ -9184,6 +9419,7 @@ static const struct st_hash_type symhash = {
|
|
9184
9419
|
rb_str_hash,
|
9185
9420
|
};
|
9186
9421
|
|
9422
|
+
#if ENABLE_SELECTOR_NAMESPACE
|
9187
9423
|
struct ivar2_key {
|
9188
9424
|
ID id;
|
9189
9425
|
VALUE klass;
|
@@ -9208,14 +9444,17 @@ static const struct st_hash_type ivar2_hash_type = {
|
|
9208
9444
|
ivar2_cmp,
|
9209
9445
|
ivar2_hash,
|
9210
9446
|
};
|
9447
|
+
#endif
|
9211
9448
|
|
9212
9449
|
void
|
9213
9450
|
Init_sym(void)
|
9214
9451
|
{
|
9215
9452
|
global_symbols.sym_id = st_init_table_with_size(&symhash, 1000);
|
9216
9453
|
global_symbols.id_str = st_init_numtable_with_size(1000);
|
9454
|
+
#if ENABLE_SELECTOR_NAMESPACE
|
9217
9455
|
global_symbols.ivar2_id = st_init_table_with_size(&ivar2_hash_type, 1000);
|
9218
9456
|
global_symbols.id_ivar2 = st_init_numtable_with_size(1000);
|
9457
|
+
#endif
|
9219
9458
|
|
9220
9459
|
Init_id();
|
9221
9460
|
}
|
@@ -9227,6 +9466,7 @@ rb_gc_mark_symbols(void)
|
|
9227
9466
|
rb_gc_mark_locations(global_symbols.op_sym,
|
9228
9467
|
global_symbols.op_sym + tLAST_TOKEN);
|
9229
9468
|
}
|
9469
|
+
#endif /* !RIPPER */
|
9230
9470
|
|
9231
9471
|
static ID
|
9232
9472
|
internal_id_gen(struct parser_params *parser)
|
@@ -9236,6 +9476,7 @@ internal_id_gen(struct parser_params *parser)
|
|
9236
9476
|
return ID_INTERNAL | (id << ID_SCOPE_SHIFT);
|
9237
9477
|
}
|
9238
9478
|
|
9479
|
+
#ifndef RIPPER
|
9239
9480
|
static int
|
9240
9481
|
is_special_global_name(const char *m, const char *e, rb_encoding *enc)
|
9241
9482
|
{
|
@@ -9262,7 +9503,7 @@ is_special_global_name(const char *m, const char *e, rb_encoding *enc)
|
|
9262
9503
|
do {
|
9263
9504
|
if (!ISASCII(*m)) mb = 1;
|
9264
9505
|
++m;
|
9265
|
-
} while (rb_enc_isdigit(*m, enc));
|
9506
|
+
} while (m < e && rb_enc_isdigit(*m, enc));
|
9266
9507
|
}
|
9267
9508
|
return m == e ? mb + 1 : 0;
|
9268
9509
|
}
|
@@ -9280,19 +9521,19 @@ rb_enc_symname_p(const char *name, rb_encoding *enc)
|
|
9280
9521
|
}
|
9281
9522
|
|
9282
9523
|
int
|
9283
|
-
rb_enc_symname2_p(const char *name,
|
9524
|
+
rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
|
9284
9525
|
{
|
9285
9526
|
const char *m = name;
|
9286
9527
|
const char *e = m + len;
|
9287
|
-
int localid =
|
9528
|
+
int localid = FALSE;
|
9288
9529
|
|
9289
|
-
if (!m) return
|
9530
|
+
if (!m) return FALSE;
|
9290
9531
|
switch (*m) {
|
9291
9532
|
case '\0':
|
9292
|
-
return
|
9533
|
+
return FALSE;
|
9293
9534
|
|
9294
9535
|
case '$':
|
9295
|
-
if (is_special_global_name(++m, e, enc)) return
|
9536
|
+
if (is_special_global_name(++m, e, enc)) return TRUE;
|
9296
9537
|
goto id;
|
9297
9538
|
|
9298
9539
|
case '@':
|
@@ -9317,7 +9558,7 @@ rb_enc_symname2_p(const char *name, int len, rb_encoding *enc)
|
|
9317
9558
|
switch (*++m) {
|
9318
9559
|
case '~': ++m; break;
|
9319
9560
|
case '=': if (*++m == '=') ++m; break;
|
9320
|
-
default: return
|
9561
|
+
default: return FALSE;
|
9321
9562
|
}
|
9322
9563
|
break;
|
9323
9564
|
|
@@ -9334,15 +9575,15 @@ rb_enc_symname2_p(const char *name, int len, rb_encoding *enc)
|
|
9334
9575
|
break;
|
9335
9576
|
|
9336
9577
|
case '[':
|
9337
|
-
if (*++m != ']') return
|
9578
|
+
if (*++m != ']') return FALSE;
|
9338
9579
|
if (*++m == '=') ++m;
|
9339
9580
|
break;
|
9340
9581
|
|
9341
9582
|
case '!':
|
9342
9583
|
switch (*++m) {
|
9343
|
-
case '\0': return
|
9584
|
+
case '\0': return TRUE;
|
9344
9585
|
case '=': case '~': ++m; break;
|
9345
|
-
default: return
|
9586
|
+
default: return FALSE;
|
9346
9587
|
}
|
9347
9588
|
break;
|
9348
9589
|
|
@@ -9350,7 +9591,7 @@ rb_enc_symname2_p(const char *name, int len, rb_encoding *enc)
|
|
9350
9591
|
localid = !rb_enc_isupper(*m, enc);
|
9351
9592
|
id:
|
9352
9593
|
if (m >= e || (*m != '_' && !rb_enc_isalpha(*m, enc) && ISASCII(*m)))
|
9353
|
-
return
|
9594
|
+
return FALSE;
|
9354
9595
|
while (m < e && is_identchar(m, e, enc)) m += rb_enc_mbclen(m, e, enc);
|
9355
9596
|
if (localid) {
|
9356
9597
|
switch (*m) {
|
@@ -9359,7 +9600,7 @@ rb_enc_symname2_p(const char *name, int len, rb_encoding *enc)
|
|
9359
9600
|
}
|
9360
9601
|
break;
|
9361
9602
|
}
|
9362
|
-
return
|
9603
|
+
return m == e;
|
9363
9604
|
}
|
9364
9605
|
|
9365
9606
|
static ID
|
@@ -9380,8 +9621,9 @@ rb_intern3(const char *name, long len, rb_encoding *enc)
|
|
9380
9621
|
unsigned char c;
|
9381
9622
|
VALUE str;
|
9382
9623
|
ID id;
|
9383
|
-
|
9624
|
+
long last;
|
9384
9625
|
int mb;
|
9626
|
+
st_data_t data;
|
9385
9627
|
struct RString fake_str;
|
9386
9628
|
fake_str.basic.flags = T_STRING|RSTRING_NOEMBED|FL_FREEZE;
|
9387
9629
|
fake_str.basic.klass = rb_cString;
|
@@ -9391,8 +9633,12 @@ rb_intern3(const char *name, long len, rb_encoding *enc)
|
|
9391
9633
|
str = (VALUE)&fake_str;
|
9392
9634
|
rb_enc_associate(str, enc);
|
9393
9635
|
|
9394
|
-
if (
|
9395
|
-
|
9636
|
+
if (rb_enc_str_coderange(str) == ENC_CODERANGE_BROKEN) {
|
9637
|
+
rb_raise(rb_eEncodingError, "invalid encoding symbol");
|
9638
|
+
}
|
9639
|
+
|
9640
|
+
if (st_lookup(global_symbols.sym_id, str, &data))
|
9641
|
+
return (ID)data;
|
9396
9642
|
|
9397
9643
|
if (rb_cString && !rb_enc_asciicompat(enc)) {
|
9398
9644
|
id = ID_JUNK;
|
@@ -9482,6 +9728,16 @@ rb_intern3(const char *name, long len, rb_encoding *enc)
|
|
9482
9728
|
mbstr:;
|
9483
9729
|
}
|
9484
9730
|
new_id:
|
9731
|
+
if (global_symbols.last_id >= ~(ID)0 >> (ID_SCOPE_SHIFT+RUBY_SPECIAL_SHIFT)) {
|
9732
|
+
if (len > 20) {
|
9733
|
+
rb_raise(rb_eRuntimeError, "symbol table overflow (symbol %.20s...)",
|
9734
|
+
name);
|
9735
|
+
}
|
9736
|
+
else {
|
9737
|
+
rb_raise(rb_eRuntimeError, "symbol table overflow (symbol %.*s)",
|
9738
|
+
(int)len, name);
|
9739
|
+
}
|
9740
|
+
}
|
9485
9741
|
id |= ++global_symbols.last_id << ID_SCOPE_SHIFT;
|
9486
9742
|
id_register:
|
9487
9743
|
return register_symid(id, name, len, enc);
|
@@ -9525,7 +9781,7 @@ rb_id2str(ID id)
|
|
9525
9781
|
if (id < tLAST_TOKEN) {
|
9526
9782
|
int i = 0;
|
9527
9783
|
|
9528
|
-
if (rb_ispunct(id)) {
|
9784
|
+
if (id < INT_MAX && rb_ispunct((int)id)) {
|
9529
9785
|
VALUE str = global_symbols.op_sym[i = (int)id];
|
9530
9786
|
if (!str) {
|
9531
9787
|
char name[2];
|
@@ -9622,36 +9878,31 @@ rb_sym_all_symbols(void)
|
|
9622
9878
|
int
|
9623
9879
|
rb_is_const_id(ID id)
|
9624
9880
|
{
|
9625
|
-
|
9626
|
-
return Qfalse;
|
9881
|
+
return is_const_id(id);
|
9627
9882
|
}
|
9628
9883
|
|
9629
9884
|
int
|
9630
9885
|
rb_is_class_id(ID id)
|
9631
9886
|
{
|
9632
|
-
|
9633
|
-
return Qfalse;
|
9887
|
+
return is_class_id(id);
|
9634
9888
|
}
|
9635
9889
|
|
9636
9890
|
int
|
9637
9891
|
rb_is_instance_id(ID id)
|
9638
9892
|
{
|
9639
|
-
|
9640
|
-
return Qfalse;
|
9893
|
+
return is_instance_id(id);
|
9641
9894
|
}
|
9642
9895
|
|
9643
9896
|
int
|
9644
9897
|
rb_is_local_id(ID id)
|
9645
9898
|
{
|
9646
|
-
|
9647
|
-
return Qfalse;
|
9899
|
+
return is_local_id(id);
|
9648
9900
|
}
|
9649
9901
|
|
9650
9902
|
int
|
9651
9903
|
rb_is_junk_id(ID id)
|
9652
9904
|
{
|
9653
|
-
|
9654
|
-
return Qfalse;
|
9905
|
+
return is_junk_id(id);
|
9655
9906
|
}
|
9656
9907
|
|
9657
9908
|
#endif /* !RIPPER */
|
@@ -9676,7 +9927,7 @@ parser_initialize(struct parser_params *parser)
|
|
9676
9927
|
parser->parser_tokidx = 0;
|
9677
9928
|
parser->parser_toksiz = 0;
|
9678
9929
|
parser->parser_heredoc_end = 0;
|
9679
|
-
parser->parser_command_start =
|
9930
|
+
parser->parser_command_start = TRUE;
|
9680
9931
|
parser->parser_deferred_nodes = 0;
|
9681
9932
|
parser->parser_lex_pbeg = 0;
|
9682
9933
|
parser->parser_lex_p = 0;
|
@@ -9695,7 +9946,7 @@ parser_initialize(struct parser_params *parser)
|
|
9695
9946
|
|
9696
9947
|
parser->result = Qnil;
|
9697
9948
|
parser->parsing_thread = Qnil;
|
9698
|
-
parser->toplevel_p =
|
9949
|
+
parser->toplevel_p = TRUE;
|
9699
9950
|
#endif
|
9700
9951
|
#ifdef YYMALLOC
|
9701
9952
|
parser->heap = NULL;
|
@@ -9754,10 +10005,46 @@ parser_free(void *ptr)
|
|
9754
10005
|
xfree(p);
|
9755
10006
|
}
|
9756
10007
|
|
10008
|
+
static size_t
|
10009
|
+
parser_memsize(const void *ptr)
|
10010
|
+
{
|
10011
|
+
struct parser_params *p = (struct parser_params*)ptr;
|
10012
|
+
struct local_vars *local;
|
10013
|
+
size_t size = sizeof(*p);
|
10014
|
+
|
10015
|
+
if (!ptr) return 0;
|
10016
|
+
size += p->parser_toksiz;
|
10017
|
+
for (local = p->parser_lvtbl; local; local = local->prev) {
|
10018
|
+
size += sizeof(*local);
|
10019
|
+
if (local->vars) size += local->vars->capa * sizeof(ID);
|
10020
|
+
}
|
10021
|
+
#ifndef RIPPER
|
10022
|
+
if (p->parser_ruby_sourcefile) {
|
10023
|
+
size += strlen(p->parser_ruby_sourcefile) + 1;
|
10024
|
+
}
|
10025
|
+
#endif
|
10026
|
+
return size;
|
10027
|
+
}
|
10028
|
+
|
10029
|
+
static const rb_data_type_t parser_data_type = {
|
10030
|
+
"parser",
|
10031
|
+
parser_mark,
|
10032
|
+
parser_free,
|
10033
|
+
parser_memsize,
|
10034
|
+
};
|
10035
|
+
|
9757
10036
|
VALUE rb_parser_get_yydebug(VALUE);
|
9758
10037
|
VALUE rb_parser_set_yydebug(VALUE, VALUE);
|
9759
10038
|
|
9760
10039
|
#ifndef RIPPER
|
10040
|
+
#undef rb_reserved_word
|
10041
|
+
|
10042
|
+
const struct kwtable *
|
10043
|
+
rb_reserved_word(const char *str, unsigned int len)
|
10044
|
+
{
|
10045
|
+
return reserved_word(str, len);
|
10046
|
+
}
|
10047
|
+
|
9761
10048
|
static struct parser_params *
|
9762
10049
|
parser_new(void)
|
9763
10050
|
{
|
@@ -9774,7 +10061,7 @@ rb_parser_new(void)
|
|
9774
10061
|
{
|
9775
10062
|
struct parser_params *p = parser_new();
|
9776
10063
|
|
9777
|
-
return
|
10064
|
+
return TypedData_Wrap_Struct(0, &parser_data_type, p);
|
9778
10065
|
}
|
9779
10066
|
|
9780
10067
|
/*
|
@@ -9789,7 +10076,7 @@ rb_parser_end_seen_p(VALUE vparser)
|
|
9789
10076
|
{
|
9790
10077
|
struct parser_params *parser;
|
9791
10078
|
|
9792
|
-
|
10079
|
+
TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser);
|
9793
10080
|
return ruby__end__seen ? Qtrue : Qfalse;
|
9794
10081
|
}
|
9795
10082
|
|
@@ -9804,7 +10091,7 @@ rb_parser_encoding(VALUE vparser)
|
|
9804
10091
|
{
|
9805
10092
|
struct parser_params *parser;
|
9806
10093
|
|
9807
|
-
|
10094
|
+
TypedData_Get_Struct(vparser, struct parser_params, &parser_data_type, parser);
|
9808
10095
|
return rb_enc_from_encoding(parser->enc);
|
9809
10096
|
}
|
9810
10097
|
|
@@ -9819,7 +10106,7 @@ rb_parser_get_yydebug(VALUE self)
|
|
9819
10106
|
{
|
9820
10107
|
struct parser_params *parser;
|
9821
10108
|
|
9822
|
-
|
10109
|
+
TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
|
9823
10110
|
return yydebug ? Qtrue : Qfalse;
|
9824
10111
|
}
|
9825
10112
|
|
@@ -9834,7 +10121,7 @@ rb_parser_set_yydebug(VALUE self, VALUE flag)
|
|
9834
10121
|
{
|
9835
10122
|
struct parser_params *parser;
|
9836
10123
|
|
9837
|
-
|
10124
|
+
TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
|
9838
10125
|
yydebug = RTEST(flag);
|
9839
10126
|
return flag;
|
9840
10127
|
}
|
@@ -9928,7 +10215,10 @@ ripper_validate_object(VALUE self, VALUE x)
|
|
9928
10215
|
case T_FLOAT:
|
9929
10216
|
return x;
|
9930
10217
|
case T_NODE:
|
9931
|
-
|
10218
|
+
if (nd_type(x) != NODE_LASGN) {
|
10219
|
+
rb_raise(rb_eArgError, "NODE given: %p", x);
|
10220
|
+
}
|
10221
|
+
return ((NODE *)x)->nd_rval;
|
9932
10222
|
default:
|
9933
10223
|
rb_raise(rb_eArgError, "wrong type of ruby object: %p (%s)",
|
9934
10224
|
x, rb_obj_classname(x));
|
@@ -9937,7 +10227,7 @@ ripper_validate_object(VALUE self, VALUE x)
|
|
9937
10227
|
}
|
9938
10228
|
#endif
|
9939
10229
|
|
9940
|
-
#define validate(x)
|
10230
|
+
#define validate(x) (x = get_value(x))
|
9941
10231
|
|
9942
10232
|
static VALUE
|
9943
10233
|
ripper_dispatch0(struct parser_params *parser, ID mid)
|
@@ -10065,9 +10355,9 @@ ripper_id2sym(ID id)
|
|
10065
10355
|
char buf[8];
|
10066
10356
|
|
10067
10357
|
if (id <= 256) {
|
10068
|
-
buf[0] = id;
|
10358
|
+
buf[0] = (char)id;
|
10069
10359
|
buf[1] = '\0';
|
10070
|
-
return ID2SYM(
|
10360
|
+
return ID2SYM(rb_intern2(buf, 1));
|
10071
10361
|
}
|
10072
10362
|
if ((name = keyword_id_to_str(id))) {
|
10073
10363
|
return ID2SYM(rb_intern(name));
|
@@ -10084,15 +10374,30 @@ ripper_id2sym(ID id)
|
|
10084
10374
|
if (!name) {
|
10085
10375
|
rb_bug("cannot convert ID to string: %ld", (unsigned long)id);
|
10086
10376
|
}
|
10087
|
-
|
10377
|
+
return ID2SYM(id);
|
10088
10378
|
}
|
10089
10379
|
return ID2SYM(rb_intern(name));
|
10090
10380
|
}
|
10091
10381
|
|
10382
|
+
static ID
|
10383
|
+
ripper_get_id(VALUE v)
|
10384
|
+
{
|
10385
|
+
NODE *nd;
|
10386
|
+
if (!RB_TYPE_P(v, T_NODE)) return 0;
|
10387
|
+
nd = (NODE *)v;
|
10388
|
+
if (nd_type(nd) != NODE_LASGN) return 0;
|
10389
|
+
return nd->nd_vid;
|
10390
|
+
}
|
10391
|
+
|
10092
10392
|
static VALUE
|
10093
|
-
|
10393
|
+
ripper_get_value(VALUE v)
|
10094
10394
|
{
|
10095
|
-
|
10395
|
+
NODE *nd;
|
10396
|
+
if (v == Qundef) return Qnil;
|
10397
|
+
if (!RB_TYPE_P(v, T_NODE)) return v;
|
10398
|
+
nd = (NODE *)v;
|
10399
|
+
if (nd_type(nd) != NODE_LASGN) return Qnil;
|
10400
|
+
return nd->nd_rval;
|
10096
10401
|
}
|
10097
10402
|
|
10098
10403
|
static void
|
@@ -10156,7 +10461,7 @@ ripper_s_allocate(VALUE klass)
|
|
10156
10461
|
|
10157
10462
|
p = ALLOC_N(struct parser_params, 1);
|
10158
10463
|
MEMZERO(p, struct parser_params, 1);
|
10159
|
-
self =
|
10464
|
+
self = TypedData_Wrap_Struct(klass, &parser_data_type, p);
|
10160
10465
|
p->value = self;
|
10161
10466
|
return self;
|
10162
10467
|
}
|
@@ -10179,7 +10484,7 @@ ripper_initialize(int argc, VALUE *argv, VALUE self)
|
|
10179
10484
|
struct parser_params *parser;
|
10180
10485
|
VALUE src, fname, lineno;
|
10181
10486
|
|
10182
|
-
|
10487
|
+
TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
|
10183
10488
|
rb_scan_args(argc, argv, "12", &src, &fname, &lineno);
|
10184
10489
|
if (rb_obj_respond_to(src, ripper_id_gets, 0)) {
|
10185
10490
|
parser->parser_lex_gets = ripper_lex_get_generic;
|
@@ -10218,7 +10523,7 @@ ripper_parse0(VALUE parser_v)
|
|
10218
10523
|
{
|
10219
10524
|
struct parser_params *parser;
|
10220
10525
|
|
10221
|
-
|
10526
|
+
TypedData_Get_Struct(parser_v, struct parser_params, &parser_data_type, parser);
|
10222
10527
|
parser_prepare(parser);
|
10223
10528
|
ripper_yyparse((void*)parser);
|
10224
10529
|
return parser->result;
|
@@ -10229,7 +10534,7 @@ ripper_ensure(VALUE parser_v)
|
|
10229
10534
|
{
|
10230
10535
|
struct parser_params *parser;
|
10231
10536
|
|
10232
|
-
|
10537
|
+
TypedData_Get_Struct(parser_v, struct parser_params, &parser_data_type, parser);
|
10233
10538
|
parser->parsing_thread = Qnil;
|
10234
10539
|
return Qnil;
|
10235
10540
|
}
|
@@ -10245,7 +10550,7 @@ ripper_parse(VALUE self)
|
|
10245
10550
|
{
|
10246
10551
|
struct parser_params *parser;
|
10247
10552
|
|
10248
|
-
|
10553
|
+
TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
|
10249
10554
|
if (!ripper_initialized_p(parser)) {
|
10250
10555
|
rb_raise(rb_eArgError, "method called for uninitialized object");
|
10251
10556
|
}
|
@@ -10274,7 +10579,7 @@ ripper_column(VALUE self)
|
|
10274
10579
|
struct parser_params *parser;
|
10275
10580
|
long col;
|
10276
10581
|
|
10277
|
-
|
10582
|
+
TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
|
10278
10583
|
if (!ripper_initialized_p(parser)) {
|
10279
10584
|
rb_raise(rb_eArgError, "method called for uninitialized object");
|
10280
10585
|
}
|
@@ -10283,6 +10588,24 @@ ripper_column(VALUE self)
|
|
10283
10588
|
return LONG2NUM(col);
|
10284
10589
|
}
|
10285
10590
|
|
10591
|
+
/*
|
10592
|
+
* call-seq:
|
10593
|
+
* ripper#filename -> String
|
10594
|
+
*
|
10595
|
+
* Return current parsing filename.
|
10596
|
+
*/
|
10597
|
+
static VALUE
|
10598
|
+
ripper_filename(VALUE self)
|
10599
|
+
{
|
10600
|
+
struct parser_params *parser;
|
10601
|
+
|
10602
|
+
TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
|
10603
|
+
if (!ripper_initialized_p(parser)) {
|
10604
|
+
rb_raise(rb_eArgError, "method called for uninitialized object");
|
10605
|
+
}
|
10606
|
+
return parser->parser_ruby_sourcefile_string;
|
10607
|
+
}
|
10608
|
+
|
10286
10609
|
/*
|
10287
10610
|
* call-seq:
|
10288
10611
|
* ripper#lineno -> Integer
|
@@ -10295,7 +10618,7 @@ ripper_lineno(VALUE self)
|
|
10295
10618
|
{
|
10296
10619
|
struct parser_params *parser;
|
10297
10620
|
|
10298
|
-
|
10621
|
+
TypedData_Get_Struct(self, struct parser_params, &parser_data_type, parser);
|
10299
10622
|
if (!ripper_initialized_p(parser)) {
|
10300
10623
|
rb_raise(rb_eArgError, "method called for uninitialized object");
|
10301
10624
|
}
|
@@ -10334,6 +10657,7 @@ Init_ripper(void)
|
|
10334
10657
|
rb_define_method(Ripper, "initialize", ripper_initialize, -1);
|
10335
10658
|
rb_define_method(Ripper, "parse", ripper_parse, 0);
|
10336
10659
|
rb_define_method(Ripper, "column", ripper_column, 0);
|
10660
|
+
rb_define_method(Ripper, "filename", ripper_filename, 0);
|
10337
10661
|
rb_define_method(Ripper, "lineno", ripper_lineno, 0);
|
10338
10662
|
rb_define_method(Ripper, "end_seen?", rb_parser_end_seen_p, 0);
|
10339
10663
|
rb_define_method(Ripper, "encoding", rb_parser_encoding, 0);
|