Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove cmptag. #260

Merged
merged 1 commit into from Dec 3, 2018

Conversation

@dvander
Copy link
Member

dvander commented Nov 3, 2018

This doesn't exist in upstream Pawn. It's not clear what it does, or if it ever did anything, or if it worked correctly when it did. It's awkwardly attached to value structs even though it's actually parsing state. Even more strange is that sometimes it's a tag and sometimes it turns into a symbol count.

@dvander dvander force-pushed the rm-lval-garbage branch from e5d3110 to 1df9ff9 Nov 3, 2018
@404UNFca

This comment has been minimized.

Copy link

404UNFca commented Nov 4, 2018

According to the code in the one file it was "for searching symbols: choose the one with the matching tag", whatever that means.

It's a mystery to everybody.

@dvander dvander force-pushed the rm-lval-garbage branch from 1df9ff9 to 22b2340 Nov 5, 2018
@dvander dvander changed the base branch from master to sm-tests Nov 5, 2018
@dvander dvander force-pushed the rm-lval-garbage branch from 22b2340 to 1fd2255 Nov 5, 2018
@dvander dvander force-pushed the sm-tests branch 2 times, most recently from 1f3ff45 to 338595b Nov 5, 2018
@dvander dvander force-pushed the rm-lval-garbage branch from 1fd2255 to a833b96 Dec 2, 2018
@dvander dvander changed the base branch from sm-tests to master Dec 2, 2018
Copy link
Member

Headline left a comment

c m p t a g

curiously
misapplied
practices
that
are
garbage
This doesn't exist in upstream Pawn. It's awkwardly attached to value
structs even though it's actually parsing state. Even more strange is
that sometimes it's a tag and sometimes it turns into a symbol count.

It allowed an awkward feature to exist where enum members could be
duplicated or shadowed across enum declarations. The compiler would then
attempt to deduce the correct declaration when used as an index. Having
shadowed constants in the global namespace is bizarre and we're better
off not having this feature, or even trying to replicate it through
saner parsing tricks.

Now, if enum fields are shadowed, the compiler will error. The
short-term fix for this is for developers to prefix their enum fields
(which is common practice in core code).
@dvander dvander force-pushed the rm-lval-garbage branch from a833b96 to c284725 Dec 2, 2018
@dvander dvander merged commit d0a1892 into master Dec 3, 2018
2 checks passed
2 checks passed
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants
You can’t perform that action at this time.