Skip to content

String>>#asInteger has not defined behavior #17277

@jordanmontt

Description

@jordanmontt

The comment of the method says the following:

String >> #asInteger
    "Return the integer present in the receiver, or nil. In case of float, returns the integer part."
    ....

But is not clear. Does returns the integer represented by String, what happens if the String is not an integer.

As an example, let's look at this:

'Weird222String' asInteger. "222"
'Weird222String111' asInteger. "222"
'333Weird222String111' asInteger. "333"

If we see into the implementation, the method returns the first characters that can be parsed as an integer and it stops as soon as there is something else.

I propose to use the NumberParser to parse the String and raise an exception if the complete String does not correspond to an integer.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions