You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "stephen mallette (JIRA)" <ji...@apache.org> on 2018/04/24 14:48:00 UTC

[jira] [Closed] (TINKERPOP-1579) Resolve naming collisions for static imports in the Gremlin language

     [ https://issues.apache.org/jira/browse/TINKERPOP-1579?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

stephen mallette closed TINKERPOP-1579.
---------------------------------------
    Resolution: Won't Do

After a fair bit of thought, I don't think there's much we can do here. The names are the names at this point and in many of these cases there isn't a way to really make them unique in a way where they remain logical. The workaround is to simply use the class/enum name to differentiate.

> Resolve naming collisions for static imports in the Gremlin language
> --------------------------------------------------------------------
>
>                 Key: TINKERPOP-1579
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1579
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: process
>    Affects Versions: 3.2.3
>            Reporter: stephen mallette
>            Priority: Major
>
> This may not be a breaking change - it can likely be done with deprecation along the 3.2.x line. The problem is that static imports collide in the {{GremlinScriptEngine}} and therefore there are not only situations where certain imports will be "hidden" but it can cause the system behave in non-deterministic fashion depending on the {{ScriptEngine}}. For example, groovy's compiler seems to only be able to detect the difference between {{Column.values}} and {{__.values()}} if wildcards are used. If they are imported directly then one of the other will fail.
> Here's a list of the troublemaker names that collide across different methods/enums: or,and,id,values,key,local,value,sum,min,max.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)