`'|' expected` is not the error message I would expect when the message
pattern is missing from a method and I try to accept in browser: | text | text '|' expected ->:= self requestPassword ifTrue: [ UIManager default requestPassword: self prompt ] ifFalse: [ UIManager default request: self prompt initialAnswer: self template ]. ^ (text isNil or: [ text isEmpty ]) ifTrue: [ nil ] ifFalse: [ text ] The highlighter was also confused turning red at the `->` instead at the very beginning of the method ... Dale |
2016-08-12 20:30 GMT+02:00 Dale Henrichs <[hidden email]>: `'|' expected` is not the error message I would expect when the message pattern is missing from a method and I try to accept in browser: yeah, this is a funny one. I onced debugged the parser to find out why that's happening. Can you spot why this is a valid method : | text | | ^ text :)
|
On 08/12/2016 11:40 AM, Nicolai Hess
wrote:
I cheated and used the syntax highlighting to give me subtle but import clues :) Things I missed when initially trying to figure out what I had done wrong ... perhaps an error message that special cases this would be called for: "'|' expected or missing message message pattern" ... There are at least two developers who expected the syntax highlighter to do a better job ... and I sent this thinking about newbies running into what I assume would be a common mistake ... Dale |
But the bar is a valid binary selector which takes a text parameter | text | text '|' expected -> := self requestPassword You seem to suggest that the parser should use formatting, presence/absence or spaces/newlines, but it never did so, it just skips/ignores spaces. The parser process as much as possible until the first error. It never did a global analysis to find the minimal error. That's a far more difficult problem. Note that for the same kind of reason, while we could make ^ a binary selector as I proposed once, we didn't yet by fear of interpreting things differently in case of missing period: self seeThePeriodMissingAtEndOfThisSentence ^self 2016-08-13 0:02 GMT+02:00 Dale Henrichs <[hidden email]>:
|
Actually I'm just suggesting that the error message is ambiguous and
I that an error message that acknowledged the ambiguity would be
useful. ... pretty simple change I would think ...
If one WERE writing a method using the | message selector, the existing error messages make perfect sense. For everyone else making the mistake of missing the message pattern, the additional information takes away the confusion ... Changing the error message for this case is all that I'm suggesting .... and it is just a suggestion to make things easier for beginners who do not have a Smalltalk compiler in the their heads ... Dale On 08/12/2016 03:36 PM, Nicolas Cellier
wrote:
|
2016-08-13 2:54 GMT+02:00 Dale Henrichs <[hidden email]>:
|
Free forum by Nabble | Edit this page |