Commit graph

2684 commits

Author SHA1 Message Date
Kazuki Tsujimoto
d25a4f413d
Allow trailing comma in hash pattern 2020-03-01 14:35:48 +09:00
Nobuyoshi Nakada
403675e8dc
Named tLABEL token 2020-02-29 21:42:38 +09:00
Nobuyoshi Nakada
07f27383b7
Refined argument name 2020-02-28 20:10:46 +09:00
Nobuyoshi Nakada
6e6844320d Fixed duplicated warning
As `command_rhs` is always a "value expression", `command_asgn`
does not need the same check.
2020-02-10 14:00:40 +09:00
Nobuyoshi Nakada
9cdc964d07
Do not warn CR inside string literal 2020-02-04 14:41:52 +09:00
Kenta Murata
019a0ed0c7
Make RATIONAL_SET_{NUM,DEN} static inline functions 2020-01-17 10:04:19 +09:00
Nobuyoshi Nakada
c171ab23e3
Separate numbered parameter scope in eval
[Feature #16432]
2020-01-16 18:38:48 +09:00
Nobuyoshi Nakada
f38b3e8c70
Fixed the location of args node with numbered parameter 2020-01-16 18:34:31 +09:00
Yusuke Endoh
5b0c3754d8 parse.y: fix a wrong sizeof argument for ruby_sized_xfree 2020-01-05 11:39:35 +09:00
Jeremy Evans
0eeed5bcc5 Make eval(code, binding) use (eval) as __FILE__ and 1 as __LINE__
This removes the warning that was added in
3802fb92ff, and switches the behavior
so that the eval does not use the binding's __FILE__ and __LINE__
implicitly.

Fixes [Bug #4352]
2020-01-03 20:13:09 -08:00
卜部昌平
5e22f873ed decouple internal.h headers
Saves comitters' daily life by avoid #include-ing everything from
internal.h to make each file do so instead.  This would significantly
speed up incremental builds.

We take the following inclusion order in this changeset:

1.  "ruby/config.h", where _GNU_SOURCE is defined (must be the very
    first thing among everything).
2.  RUBY_EXTCONF_H if any.
3.  Standard C headers, sorted alphabetically.
4.  Other system headers, maybe guarded by #ifdef
5.  Everything else, sorted alphabetically.

Exceptions are those win32-related headers, which tend not be self-
containing (headers have inclusion order dependencies).
2019-12-26 20:45:12 +09:00
Nobuyoshi Nakada
56e002981f
Show the error line only when same as the current 2019-12-25 14:49:48 +09:00
Nobuyoshi Nakada
07e595fdbd
Added experimental warning category
[Feature #16420]
2019-12-20 23:48:15 +09:00
Nobuyoshi Nakada
dd7f0c87c9
Hoisted out new_case3 2019-12-20 23:43:38 +09:00
Nobuyoshi Nakada
7a94225e7d
Refined the warning message for numbered-parameter like variables
[Bug #16438]
2019-12-20 14:58:51 +09:00
Nobuyoshi Nakada
a8bddb3a18
Refined the warning message for numbered-parameter like variables
[Bug #16438]
2019-12-20 14:34:32 +09:00
Nobuyoshi Nakada
2898367b3a
Warn also numbered parameter like methods 2019-12-20 08:18:19 +09:00
Nobuyoshi Nakada
27ddb6e998
Warn also numbered parameter like parameters
[Feature #16433]
2019-12-20 01:25:34 +09:00
Yusuke Endoh
199bd851e4 parse.y: suppress "set but not used" warnings on ripper.y 2019-12-05 14:51:55 +09:00
Jeremy Evans
447d583536 Silence incorrect assigned but unused variable warnings in ripper
To only emit the warnings in correct cases would require tracking
local variable usage in ripper, which ripper currently does not do.

Fixes [Bug #15188]
2019-12-04 03:04:22 +02:00
Nobuyoshi Nakada
d1ef4fd08e
Make single line pattern matching void expression
Instead of returning `nil`, raise a syntax error if its value is
used.  [Feature #16355]
2019-11-30 00:15:29 +09:00
Nobuyoshi Nakada
8b4ee5d6ba
Raise NoMatchingPatternError when expr in pat doesn't match
* `expr in pattern` should raise `NoMatchingError` when unmatched
* `expr in pattern` should return `nil`. (this is unspecified, but
  this feature is experimental, at all)

[Feature #16355]
2019-11-28 13:47:14 +09:00
Nobuyoshi Nakada
9e01fcd0cb
[ripper] Fixed unique key check in pattern matching
Check keys
* by an internal table, instead of unstable dispatched results
* and by parsed key values, instead of escaped forms in the source
2019-11-26 22:54:35 +09:00
Nobuyoshi Nakada
22dfd14c17
Hoisted out push_pvtbl/pop_pvtbl 2019-11-26 21:57:00 +09:00
Nobuyoshi Nakada
497f13aea6
Wrap p_kw in an array at p_kwarg
Not in `p_kw` itself, which makes key and variable/expr pair only
now.
2019-11-26 21:57:00 +09:00
Nobuyoshi Nakada
26625bc33c
[ripper] Quoted label without expression must be a local variable
The difference from 0b8c73aa65 is to
add the result of `string_add` event to marking objects.

```C
			    RNODE($1)->nd_rval = add_mark_object(p, $$);
```
2019-11-25 17:42:59 +09:00
Nobuyoshi Nakada
61131edba7
Revert "[ripper] Quoted label without expression must be a local variable"
This reverts commit 0b8c73aa65, which
seems breaking RVALUE consistency check.
2019-11-20 00:56:04 +09:00
Nobuyoshi Nakada
0b8c73aa65
[ripper] Quoted label without expression must be a local variable 2019-11-19 17:18:27 +09:00
Jeremy Evans
c5c05460ac Warn on access/modify of $SAFE, and remove effects of modifying $SAFE
This removes the security features added by $SAFE = 1, and warns for access
or modification of $SAFE from Ruby-level, as well as warning when calling
all public C functions related to $SAFE.

This modifies some internal functions that took a safe level argument
to no longer take the argument.

rb_require_safe now warns, rb_require_string has been added as a
version that takes a VALUE and does not warn.

One public C function that still takes a safe level argument and that
this doesn't warn for is rb_eval_cmd.  We may want to consider
adding an alternative method that does not take a safe level argument,
and warn for rb_eval_cmd.
2019-11-18 01:00:25 +02:00
卜部昌平
c9ffe751d1 delete unused functions
Looking at the list of symbols inside of libruby-static.a, I found
hundreds of functions that are defined, but used from nowhere.

There can be reasons for each of them (e.g. some functions are
specific to some platform, some are useful when debugging, etc).
However it seems the functions deleted here exist for no reason.

This changeset reduces the size of ruby binary from 26,671,456
bytes to 26,592,864 bytes on my machine.
2019-11-14 20:35:48 +09:00
Nobuyoshi Nakada
4d615a0c8f
#@1 is no longer an embedded variable 2019-11-14 16:37:25 +09:00
Nobuyoshi Nakada
fb6a489af2
Revert "Method reference operator"
This reverts commit 67c5747369.
[Feature #16275]
2019-11-12 17:24:48 +09:00
Nobuyoshi Nakada
a58b4eee25
Warn on ... at EOL 2019-11-12 17:14:14 +09:00
Nobuyoshi Nakada
7c22898a3a
Disable tOROP at EXPR_BEG
Both cannot appear there anyway.
2019-11-12 15:42:53 +09:00
Nobuyoshi Nakada
ed90ec3e0d
Clear current argument name at empty block argument [Bug #16343] 2019-11-12 09:40:18 +09:00
NARUSE, Yui
fd69f82675 Revert "Warn EOF char in comment"
This reverts commit 69ec3f70fa.
2019-11-11 17:37:21 +09:00
NARUSE, Yui
ba5b51ca59 Revert "Elaborated EOF char message a little"
This reverts commit 6eaac7cfac.
2019-11-11 17:37:14 +09:00
Nobuyoshi Nakada
6eaac7cfac
Elaborated EOF char message a little 2019-11-11 12:57:40 +09:00
Nobuyoshi Nakada
69ec3f70fa
Warn EOF char in comment 2019-11-11 09:59:40 +09:00
Nobuyoshi Nakada
ade0388894
Fixed embedded document with EOF char 2019-11-11 09:38:14 +09:00
Kazuki Tsujimoto
6e70fa49b1
Disallow omission of parentheses/brackets in single line pattern matching [Feature #16182] 2019-11-10 22:34:49 +09:00
Kazuki Tsujimoto
a396bef8d8
Disallow duplicated pattern variable 2019-11-07 15:40:35 +09:00
Kazuki Tsujimoto
1e620c67af
Add missing semicolon 2019-11-07 13:20:11 +09:00
Nobuyoshi Nakada
2fd465540f
Numbered parameter is an ID_LOCAL now [Bug #16293] 2019-11-06 12:45:11 +09:00
Nobuyoshi Nakada
82e840ad15
Numbered parameter cannot appear outside block now [Bug #16293] 2019-11-06 12:44:50 +09:00
Kazuhiro NISHIYAMA
30a74aaef0
Fix a typo in WARN_EOL 2019-11-05 10:09:44 +09:00
Nobuyoshi Nakada
a087e027bf
Fixed conditional expressions with only one void side 2019-11-05 01:32:26 +09:00
Nobuyoshi Nakada
e91e3274be
Keep lex.pcur after looking_at_eol_p 2019-11-04 23:37:53 +09:00
Nobuyoshi Nakada
26316cc350
Warn if and elsif at EOL [EXPERIMENTAL]
It is unnatural and probably a typo.
2019-11-04 23:17:34 +09:00
Yusuke Endoh
c303854e13 Revert "Warn if and elsif at EOL [EXPERIMENTAL]"
This reverts commit ba35c14325.
This is because ripper fails symbol lookup error.
2019-11-04 22:27:37 +09:00