{ "id": "167315", "key": "TIMOB-24632", "fields": { "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": null, "resolutiondate": null, "created": "2017-04-26T15:02:46.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [ { "id": "19101", "name": "Hyperloop 2.1.0", "archived": false, "released": true, "releaseDate": "2017-04-28" } ], "issuelinks": [ { "id": "54771", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "164647", "key": "TIMOB-24163", "fields": { "summary": "Hyperloop: iOS - Metabase generation fails for Swift-only classes from system frameworks", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "54770", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "164710", "key": "TIMOB-24180", "fields": { "summary": "Hyperloop: iOS - Swift files referencing each other break metabase generation", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-04-26T15:04:01.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [], "description": "*Current Swift metabase parser issues*\r\nThe current Swift metabase parser uses {{swiftc -dump-ast}} to parse Swift source code. This is very limited in functionality and complicated to parse. Also it currently lacks some important features like properly parsing collection types, using Swift only classes from system frameworks and parsing Swift code that references each other (across multiple files as well as forward declarations inside a single file)\r\n\r\n*SourceKit*\r\nApple provides a much more flexible toolkit named [SourceKit|https://github.com/apple/swift/tree/master/tools/SourceKit] specially built for Swift IDE features which is also used internally by Xcode. SourceKit can be used to generate meta information about Swift Modules and single source files in a easy to parse JSON format.\r\n\r\n*Useful Links*\r\nhttps://github.com/apple/swift/tree/master/tools/SourceKit\r\nhttps://github.com/jpsim/SourceKitten\r\nhttps://news.realm.io/news/appbuilders-jp-simard-sourcekit/\r\n", "attachment": [], "flagged": false, "summary": "Hyperloop: iOS - Swift metabase parser using SourceKit", "creator": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "environment": "Hyperloop 2.1.0", "comment": { "comments": [], "maxResults": 0, "total": 0, "startAt": 0 } } }