Add support for Flow shorthand import type (#267)

This commit is contained in:
Jeff Morrison
2017-01-03 04:52:18 -05:00
committed by Daniel Tschinder
parent 68bb1c6598
commit 9ea4e9dead
6 changed files with 1032 additions and 5 deletions

View File

@@ -0,0 +1,8 @@
import {type} from "foo";
import {type t} from "foo";
import {type as} from "foo";
import {type t as u} from "foo";
import {typeof t} from "foo";
import {typeof as} from "foo";
import {typeof t as u} from "foo";

View File

@@ -0,0 +1,650 @@
{
"type": "File",
"start": 0,
"end": 212,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 8,
"column": 34
}
},
"program": {
"type": "Program",
"start": 0,
"end": 212,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 8,
"column": 34
}
},
"sourceType": "module",
"body": [
{
"type": "ImportDeclaration",
"start": 0,
"end": 25,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 25
}
},
"specifiers": [
{
"type": "ImportSpecifier",
"start": 8,
"end": 12,
"loc": {
"start": {
"line": 1,
"column": 8
},
"end": {
"line": 1,
"column": 12
}
},
"imported": {
"type": "Identifier",
"start": 8,
"end": 12,
"loc": {
"start": {
"line": 1,
"column": 8
},
"end": {
"line": 1,
"column": 12
},
"identifierName": "type"
},
"name": "type"
},
"importKind": null,
"local": {
"type": "Identifier",
"start": 8,
"end": 12,
"loc": {
"start": {
"line": 1,
"column": 8
},
"end": {
"line": 1,
"column": 12
},
"identifierName": "type"
},
"name": "type"
}
}
],
"importKind": "value",
"source": {
"type": "StringLiteral",
"start": 19,
"end": 24,
"loc": {
"start": {
"line": 1,
"column": 19
},
"end": {
"line": 1,
"column": 24
}
},
"extra": {
"rawValue": "foo",
"raw": "\"foo\""
},
"value": "foo"
}
},
{
"type": "ImportDeclaration",
"start": 26,
"end": 53,
"loc": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 27
}
},
"specifiers": [
{
"type": "ImportSpecifier",
"start": 34,
"end": 40,
"loc": {
"start": {
"line": 2,
"column": 8
},
"end": {
"line": 2,
"column": 14
}
},
"imported": {
"type": "Identifier",
"start": 39,
"end": 40,
"loc": {
"start": {
"line": 2,
"column": 13
},
"end": {
"line": 2,
"column": 14
},
"identifierName": "t"
},
"name": "t"
},
"importKind": "type",
"local": {
"type": "Identifier",
"start": 39,
"end": 40,
"loc": {
"start": {
"line": 2,
"column": 13
},
"end": {
"line": 2,
"column": 14
},
"identifierName": "t"
},
"name": "t"
}
}
],
"importKind": "value",
"source": {
"type": "StringLiteral",
"start": 47,
"end": 52,
"loc": {
"start": {
"line": 2,
"column": 21
},
"end": {
"line": 2,
"column": 26
}
},
"extra": {
"rawValue": "foo",
"raw": "\"foo\""
},
"value": "foo"
}
},
{
"type": "ImportDeclaration",
"start": 54,
"end": 82,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 28
}
},
"specifiers": [
{
"type": "ImportSpecifier",
"start": 62,
"end": 69,
"loc": {
"start": {
"line": 3,
"column": 8
},
"end": {
"line": 3,
"column": 15
}
},
"imported": {
"type": "Identifier",
"start": 67,
"end": 69,
"loc": {
"start": {
"line": 3,
"column": 13
},
"end": {
"line": 3,
"column": 15
},
"identifierName": "as"
},
"name": "as"
},
"importKind": "type",
"local": {
"type": "Identifier",
"start": 67,
"end": 69,
"loc": {
"start": {
"line": 3,
"column": 13
},
"end": {
"line": 3,
"column": 15
},
"identifierName": "as"
},
"name": "as"
}
}
],
"importKind": "value",
"source": {
"type": "StringLiteral",
"start": 76,
"end": 81,
"loc": {
"start": {
"line": 3,
"column": 22
},
"end": {
"line": 3,
"column": 27
}
},
"extra": {
"rawValue": "foo",
"raw": "\"foo\""
},
"value": "foo"
}
},
{
"type": "ImportDeclaration",
"start": 83,
"end": 115,
"loc": {
"start": {
"line": 4,
"column": 0
},
"end": {
"line": 4,
"column": 32
}
},
"specifiers": [
{
"type": "ImportSpecifier",
"start": 91,
"end": 102,
"loc": {
"start": {
"line": 4,
"column": 8
},
"end": {
"line": 4,
"column": 19
}
},
"imported": {
"type": "Identifier",
"start": 96,
"end": 97,
"loc": {
"start": {
"line": 4,
"column": 13
},
"end": {
"line": 4,
"column": 14
},
"identifierName": "t"
},
"name": "t"
},
"importKind": "type",
"local": {
"type": "Identifier",
"start": 101,
"end": 102,
"loc": {
"start": {
"line": 4,
"column": 18
},
"end": {
"line": 4,
"column": 19
},
"identifierName": "u"
},
"name": "u"
}
}
],
"importKind": "value",
"source": {
"type": "StringLiteral",
"start": 109,
"end": 114,
"loc": {
"start": {
"line": 4,
"column": 26
},
"end": {
"line": 4,
"column": 31
}
},
"extra": {
"rawValue": "foo",
"raw": "\"foo\""
},
"value": "foo"
}
},
{
"type": "ImportDeclaration",
"start": 117,
"end": 146,
"loc": {
"start": {
"line": 6,
"column": 0
},
"end": {
"line": 6,
"column": 29
}
},
"specifiers": [
{
"type": "ImportSpecifier",
"start": 125,
"end": 133,
"loc": {
"start": {
"line": 6,
"column": 8
},
"end": {
"line": 6,
"column": 16
}
},
"imported": {
"type": "Identifier",
"start": 132,
"end": 133,
"loc": {
"start": {
"line": 6,
"column": 15
},
"end": {
"line": 6,
"column": 16
},
"identifierName": "t"
},
"name": "t"
},
"importKind": "typeof",
"local": {
"type": "Identifier",
"start": 132,
"end": 133,
"loc": {
"start": {
"line": 6,
"column": 15
},
"end": {
"line": 6,
"column": 16
},
"identifierName": "t"
},
"name": "t"
}
}
],
"importKind": "value",
"source": {
"type": "StringLiteral",
"start": 140,
"end": 145,
"loc": {
"start": {
"line": 6,
"column": 23
},
"end": {
"line": 6,
"column": 28
}
},
"extra": {
"rawValue": "foo",
"raw": "\"foo\""
},
"value": "foo"
}
},
{
"type": "ImportDeclaration",
"start": 147,
"end": 177,
"loc": {
"start": {
"line": 7,
"column": 0
},
"end": {
"line": 7,
"column": 30
}
},
"specifiers": [
{
"type": "ImportSpecifier",
"start": 155,
"end": 164,
"loc": {
"start": {
"line": 7,
"column": 8
},
"end": {
"line": 7,
"column": 17
}
},
"imported": {
"type": "Identifier",
"start": 162,
"end": 164,
"loc": {
"start": {
"line": 7,
"column": 15
},
"end": {
"line": 7,
"column": 17
},
"identifierName": "as"
},
"name": "as"
},
"importKind": "typeof",
"local": {
"type": "Identifier",
"start": 162,
"end": 164,
"loc": {
"start": {
"line": 7,
"column": 15
},
"end": {
"line": 7,
"column": 17
},
"identifierName": "as"
},
"name": "as"
}
}
],
"importKind": "value",
"source": {
"type": "StringLiteral",
"start": 171,
"end": 176,
"loc": {
"start": {
"line": 7,
"column": 24
},
"end": {
"line": 7,
"column": 29
}
},
"extra": {
"rawValue": "foo",
"raw": "\"foo\""
},
"value": "foo"
}
},
{
"type": "ImportDeclaration",
"start": 178,
"end": 212,
"loc": {
"start": {
"line": 8,
"column": 0
},
"end": {
"line": 8,
"column": 34
}
},
"specifiers": [
{
"type": "ImportSpecifier",
"start": 186,
"end": 199,
"loc": {
"start": {
"line": 8,
"column": 8
},
"end": {
"line": 8,
"column": 21
}
},
"imported": {
"type": "Identifier",
"start": 193,
"end": 194,
"loc": {
"start": {
"line": 8,
"column": 15
},
"end": {
"line": 8,
"column": 16
},
"identifierName": "t"
},
"name": "t"
},
"importKind": "typeof",
"local": {
"type": "Identifier",
"start": 198,
"end": 199,
"loc": {
"start": {
"line": 8,
"column": 20
},
"end": {
"line": 8,
"column": 21
},
"identifierName": "u"
},
"name": "u"
}
}
],
"importKind": "value",
"source": {
"type": "StringLiteral",
"start": 206,
"end": 211,
"loc": {
"start": {
"line": 8,
"column": 28
},
"end": {
"line": 8,
"column": 33
}
},
"extra": {
"rawValue": "foo",
"raw": "\"foo\""
},
"value": "foo"
}
}
],
"directives": []
}
}

View File

@@ -0,0 +1,3 @@
import type Def from "M";
import type {named} from "M";
import type Def, {named} from "M";

View File

@@ -0,0 +1,310 @@
{
"type": "File",
"start": 0,
"end": 90,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 34
}
},
"program": {
"type": "Program",
"start": 0,
"end": 90,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 3,
"column": 34
}
},
"sourceType": "module",
"body": [
{
"type": "ImportDeclaration",
"start": 0,
"end": 25,
"loc": {
"start": {
"line": 1,
"column": 0
},
"end": {
"line": 1,
"column": 25
}
},
"specifiers": [
{
"type": "ImportDefaultSpecifier",
"start": 12,
"end": 15,
"loc": {
"start": {
"line": 1,
"column": 12
},
"end": {
"line": 1,
"column": 15
}
},
"local": {
"type": "Identifier",
"start": 12,
"end": 15,
"loc": {
"start": {
"line": 1,
"column": 12
},
"end": {
"line": 1,
"column": 15
},
"identifierName": "Def"
},
"name": "Def"
}
}
],
"importKind": "type",
"source": {
"type": "StringLiteral",
"start": 21,
"end": 24,
"loc": {
"start": {
"line": 1,
"column": 21
},
"end": {
"line": 1,
"column": 24
}
},
"extra": {
"rawValue": "M",
"raw": "\"M\""
},
"value": "M"
}
},
{
"type": "ImportDeclaration",
"start": 26,
"end": 55,
"loc": {
"start": {
"line": 2,
"column": 0
},
"end": {
"line": 2,
"column": 29
}
},
"specifiers": [
{
"type": "ImportSpecifier",
"start": 39,
"end": 44,
"loc": {
"start": {
"line": 2,
"column": 13
},
"end": {
"line": 2,
"column": 18
}
},
"imported": {
"type": "Identifier",
"start": 39,
"end": 44,
"loc": {
"start": {
"line": 2,
"column": 13
},
"end": {
"line": 2,
"column": 18
},
"identifierName": "named"
},
"name": "named"
},
"local": {
"type": "Identifier",
"start": 39,
"end": 44,
"loc": {
"start": {
"line": 2,
"column": 13
},
"end": {
"line": 2,
"column": 18
},
"identifierName": "named"
},
"name": "named"
}
}
],
"importKind": "type",
"source": {
"type": "StringLiteral",
"start": 51,
"end": 54,
"loc": {
"start": {
"line": 2,
"column": 25
},
"end": {
"line": 2,
"column": 28
}
},
"extra": {
"rawValue": "M",
"raw": "\"M\""
},
"value": "M"
}
},
{
"type": "ImportDeclaration",
"start": 56,
"end": 90,
"loc": {
"start": {
"line": 3,
"column": 0
},
"end": {
"line": 3,
"column": 34
}
},
"specifiers": [
{
"type": "ImportDefaultSpecifier",
"start": 68,
"end": 71,
"loc": {
"start": {
"line": 3,
"column": 12
},
"end": {
"line": 3,
"column": 15
}
},
"local": {
"type": "Identifier",
"start": 68,
"end": 71,
"loc": {
"start": {
"line": 3,
"column": 12
},
"end": {
"line": 3,
"column": 15
},
"identifierName": "Def"
},
"name": "Def"
}
},
{
"type": "ImportSpecifier",
"start": 74,
"end": 79,
"loc": {
"start": {
"line": 3,
"column": 18
},
"end": {
"line": 3,
"column": 23
}
},
"imported": {
"type": "Identifier",
"start": 74,
"end": 79,
"loc": {
"start": {
"line": 3,
"column": 18
},
"end": {
"line": 3,
"column": 23
},
"identifierName": "named"
},
"name": "named"
},
"local": {
"type": "Identifier",
"start": 74,
"end": 79,
"loc": {
"start": {
"line": 3,
"column": 18
},
"end": {
"line": 3,
"column": 23
},
"identifierName": "named"
},
"name": "named"
}
}
],
"importKind": "type",
"source": {
"type": "StringLiteral",
"start": 86,
"end": 89,
"loc": {
"start": {
"line": 3,
"column": 30
},
"end": {
"line": 3,
"column": 33
}
},
"extra": {
"rawValue": "M",
"raw": "\"M\""
},
"value": "M"
}
}
],
"directives": []
}
}