Commit Graph

2321 Commits

Author SHA1 Message Date
Rintaro Ishizaki
da45b8d765 Merge pull request #22957 from rintaro/ide-completion-initializer-rdar40944761
[CodeCompletion] Force type check pattern binding for initializer
2019-03-08 16:13:24 -08:00
Rintaro Ishizaki
1038011c67 [CodeCompletion] Force type check pattern binding for initializer
Also, do not handle parsed decls in first-pass. Because they are
re-parsed, they used to case duplicated decls in AST.

rdar://problem/40944761
2019-03-08 13:42:08 -08:00
Xi Ge
139d898658 Parser: properly handle token receiver in back tracking scope 2019-03-07 23:45:34 -08:00
Rintaro Ishizaki
63d1ba3c73 [CodeCompletion] Handle metatype in callee analysis
To return accurate type of the expression.
i.e.
    MyType.foo(#^COMPLETE^#    // -> (MyType) -> (args...) -> Result
    MyType().foo(#^COMPLETE^#  // -> (args...) -> Result
2019-03-05 16:45:48 -08:00
Rintaro Ishizaki
5e25550315 [CodeCompletion] Add test cases for implicitly curried self arg 2019-03-05 16:45:48 -08:00
Rintaro Ishizaki
97d7111fa6 [CodeCompletion] Clean-up result build for method/function all
Don't emit duplicate results for implicitly curried instance methods
with defaulted parameters.
2019-03-05 16:45:48 -08:00
Rintaro Ishizaki
489a53864c [CodeCompletion] Display mapped type for subscript result 2019-03-05 16:45:48 -08:00
Rintaro Ishizaki
c99af83901 [CodeCompletion] Consolidate parameter list processing funcitons
There were 2 functions to output argument list. Consolidate them and
consistently use it from every call like production (i.e. function call,
constructor call, enum with associated values, subscript)
2019-03-05 16:45:48 -08:00
Argyrios Kyrtzidis
b76ac41aff Merge pull request #22090 from marcelofabri/enum-type-syntax-map
[SR-9740][SourceKit] Mark types inside enum case decl as typeidentifiers
2019-03-02 00:10:28 -08:00
Rintaro Ishizaki
791b81f9b9 Merge pull request #23005 from rintaro/ide-completion-parsedexpr-rdar48141174
[CodeCompletion] Find parsed expression from typechecked decl context
2019-03-01 09:09:09 -08:00
Rintaro Ishizaki
82b5f2a195 [CodeCompletion] Find parsed expression from typechecked decl context
Instead of re-typechecking parsed expression, find typechecked
expression that corresponds to the parsed expression from the
typechecked decl context, because the sub expressions of the parsed
expression can be weirdly mutated/replaced by decl context typechecking.

rdar://problem/48141174
2019-02-28 18:39:46 -08:00
Rintaro Ishizaki
e80c4d1959 Merge pull request #22966 from AnthonyLatsis/test_for_SR2560
[CodeCompletion] Add a regression test for SR-2560
2019-02-28 10:32:08 -08:00
fischertony
f6cad5fc2b Add a regression test for SR-2560 2019-02-28 03:24:09 +03:00
Nathan Hawes
f38e6b454d Merge pull request #22845 from nathawes/unterminated-raw-string-syntax-highlighting
[IDE][syntax-coloring] Treat unterminated raw strings as strings for syntax coloring purposes
2019-02-26 12:43:56 -08:00
Rintaro Ishizaki
6872f6c0cb Merge pull request #19742 from AnthonyLatsis/class-var-override-compl
[CodeCompletion][Parser] Completions for overridable static members
2019-02-26 09:52:37 -08:00
Slava Pestov
84fbd0271a Merge pull request #22825 from slavapestov/remove-old-type-reconstruction
Remove TypeReconstruction.cpp
2019-02-23 01:26:54 -05:00
Nathan Hawes
a1de792ae3 [IDE][syntax-coloring] Treat unterminated raw strings as strings for syntax coloring purposes
The existing check assumed unterminated strings started with " which is no
longer true now we have raw strings.

Resolves rdar://problem/48269826
2019-02-22 18:53:32 -08:00
Rintaro Ishizaki
cc90915c88 Merge pull request #22730 from rintaro/ide-completion-enumtype-rdar48220244
[CodeCompletion] Show the enum type for enum element with assoc values
2019-02-22 13:39:27 -08:00
Slava Pestov
c42c98c13e swift-ide-test: Use Demangle::getTypeDeclForUSR() to implement -type-reconstruction flag
"Fixes" <rdar://problem/30680565> -- the "reconstruct_type_from_mangled_name_invalid"
test has been disabled since 2017, and the output has changed a fair bit. But the
FIXMEs have been addressed and it can reconstruct the associated type and
type alias now, and there's no harm in re-enabling it now.
2019-02-22 16:13:02 -05:00
Rintaro Ishizaki
dc8508435b [CodeCompletion] Show bound generic types for enum elements
We weren't displaying bound generic types for enum elements. It's
inconsistent with functions and initializiers.
2019-02-20 11:31:04 -08:00
Rintaro Ishizaki
25f9b8843c [CodeCompletion] Show the enum type for enum element with assoc values
enum MyEnum {
    case null
    case str(String)
}

When completing elements for enum like this, the former shows `MyEnum`,
but the latter shows `(String) -> MyEnum`. This is inconsistent with
function call pattern which only shows the result type.

rdar://problem/48220244
2019-02-20 10:29:59 -08:00
David Zarzycki
5faa0ba2c2 Merge pull request #22710 from davezarzycki/fewer_ide_complete_decl_attribute_merge_conflicts
[Testing] Minimize merge conflicts in IDE/complete_decl_attribute.swift
2019-02-20 06:23:51 -05:00
Rintaro Ishizaki
69ff99fbd5 Merge pull request #22717 from rintaro/ide-completion-declmemberinit-rdar48208253
[CodeCompletion] Analyze the parent of initializer
2019-02-19 17:42:13 -08:00
Rintaro Ishizaki
fd9b6a12de [CodeCompletion] Analyze the parent of initializer
For `Initializer` decl context, type context analyzer should look into
its parent context because that might constrain initializer's type.

rdar://problem/48208253
2019-02-19 14:22:24 -08:00
David Zarzycki
9c3613793e [Testing] Minimize merge conflicts in IDE/complete_decl_attribute.swift 2019-02-19 11:00:39 -05:00
Xi Ge
20e27f284a Merge pull request #22700 from nkcsgexi/ide-report-types
IDE: implement an IDE action to collect types of all expressions in a source file.
2019-02-18 19:50:44 -08:00
Xi Ge
84873fbbb3 IDE: implement an IDE action to collect types of all expressions in a source file.
This is libIDE side implementation for collecting all type information in a source
file. When several expression share the same source range, we always report the
type of the outermost expression.

rdar://35199889
2019-02-18 17:53:04 -08:00
Slava Pestov
112f6e027c Sema: Remove @noreturn attribute support
Swift 5 removed Swift 3 mode, but kept some diagnostic code around to emit
a fixit. It's time to remove that now.
2019-02-18 16:50:36 -05:00
fischertony
ae415b2a4b When followed by an 'override' or CC token inside a class, treat 'class' as a modifier rather than an introducer. 2019-02-16 16:02:22 +03:00
fischertony
ecfce56110 Don't exclude @autoclosure from the attribute list when printing override completions 2019-02-16 16:02:22 +03:00
fischertony
86d9d7a6b5 Fix override completions when a valid introducer is present but the override keyword is not. 2019-02-16 16:02:22 +03:00
fischertony
bb9482bab5 [CodeCompletion][Parser] Completions for overridable static members 2019-02-16 16:02:06 +03:00
Slava Pestov
18f4500bc6 Merge pull request #22611 from pschuh/s-4
IntegerLiteralExpr now is lowered directly into SIL.
2019-02-14 21:05:15 -05:00
Parker Schuh
b12fcb50db IntegerLiteralExpr now is lowered directly into SIL.
For context, String, Nil, and Bool already behave this way.

Note: Before it used to construct (call, ... (integer_literal)), and the
call would be made explicit / implicit based on if you did eg: Int(3) or
just 3. This however did not translate to the new world so this PR adds
a IsExplicitConversion bit to NumberLiteralExpr. Some side results of
all this are that some warnings changed a little and some instructions are
emitted in a different order.
2019-02-14 11:54:16 -08:00
Slava Pestov
d0c7b1547e ASTMangler: Mangle sugared types for the debugger
Fixes <rdar://problem/48004306>.
2019-02-13 19:17:25 -05:00
swift-ci
baf2e4e6f6 Merge pull request #22582 from DougGregor/enum-raw-value-error-cascade 2019-02-13 00:21:43 -08:00
Doug Gregor
5757d14365 Don’t add RawRepresentation conformance for enums with erroneous raw types
This avoids cascading errors with very unfortunate Fix-Its.
rdar://problem/47891507
2019-02-12 23:12:17 -08:00
Rintaro Ishizaki
0bebba840e Merge pull request #22539 from rintaro/ide-codecompletion-dottype-rdar22072865
[CodeCompletion] Implement .Type completion in expression context
2019-02-12 16:03:29 -08:00
Rintaro Ishizaki
ec85151a80 [CodeCompletion] Add '.Protocol' completion for protocol in type context 2019-02-12 10:58:30 -08:00
Rintaro Ishizaki
01b8fbc1bf [CodeCompletion] Implement .Type completion in expression context
rdar://problem/22072865
2019-02-12 10:40:08 -08:00
Rintaro Ishizaki
1d845d6e3f [IDE/SourceKit] New SourceKit request for filtered method list
`source.request.conformingmethods` is a new SourceKit request which
receives a source position and a list of protocol namses, returns a list
of methods whose return type conforms to the requested protocols.

rdar://problem/44699573
2019-02-08 12:56:58 -08:00
Xi Ge
536e706f71 Merge pull request #22465 from nkcsgexi/interpolation-extract
AST: TapExpr should return sub-expression's source locations if set.
2019-02-08 07:56:43 -08:00
Slava Pestov
b2f0327516 IDE: Remove getTypeFromMangledSymbolname()
There was only one remaining usage other than in testing tools.

Note that when a declaration mangling was passed in, the old entry
point would (try to) return the type of the declaration.

The new entry point no longer has this behavior. I changed the
bridging-header-first test to run lldb-moduleimport-test with
-decl-from-mangled instead of -type-from-mangled-old to preserve
the behavior of the test.

Also, I removed test/DebugInfo/DumpTypeFromMangledName.swift
completely. This test only covered a handful of cases, and a bunch
of them were declaration manglings rather than type manglings.
The new tests in test/TypeDecoder/ are much more comprehensive.
2019-02-08 02:56:05 -05:00
Xi Ge
5617e4a793 AST: TapExpr should return sub-expression's source locations if set.
Without source location, TapExpr could stop IDE from collecting parameters
while perform refactoring.

rdar://47835267
2019-02-07 16:46:34 -08:00
Rintaro Ishizaki
ada9d92e80 Merge pull request #22416 from rintaro/ide-syntaxmap-rdar47855035
[IDE] Handle `@unknown` attribute in syntax map
2019-02-06 13:41:53 -08:00
Rintaro Ishizaki
d4c3ee6b49 [IDE] Handle '@unknown' attribute in syntax map
`@unknown` is so far the only attribute for statement. Handle it
specially in syntax-map.

rdar://problem/47855035 / https://bugs.swift.org/browse/SR-9873
2019-02-06 11:23:53 -08:00
John Fairhurst
f841d45185 [IDE] Fix sourcerange for assoc types with default values 2019-02-06 18:10:41 +00:00
Rintaro Ishizaki
e7700dc67f [IDE] Fix SyntaxModel to corretly walk sequence expression correctly
* Handle sequence expression at call argument position
* Set the sequence expression as the parent when walking into its sub
  expressions.
* Correctly call walkToExprPost() to the sequence expression.

rdar://problem/47603866 / https://bugs.swift.org/browse/SR-9776
2019-01-28 11:25:07 -08:00
Marcelo Fabri
cab4968da3 [SR-9740][SourceKit] Mark types inside enum case decl as typeidentifiers 2019-01-24 09:14:11 -08:00
Marcelo Fabri
d948823d89 [SR-9576][SourceKit] Fix syntax type when rethrows is present 2019-01-22 20:26:23 -08:00