Commit Graph

1359 Commits

Author SHA1 Message Date
Doug Gregor
195fb46e44 Typo correction in a variable name.
Swift SVN r15170
2014-03-17 23:23:55 +00:00
Dmitri Hrybenko
efa2f3b896 Code completion: add brief comments to code completion results
Swift SVN r15059
2014-03-14 17:53:22 +00:00
Dmitri Hrybenko
5659f8a78c Code completion: don't assert if module loading failed
Swift SVN r14867
2014-03-10 12:14:00 +00:00
Chris Lattner
d758e0dfe3 Eliminate more "DynamicLookup" in favor of "AnyObject", this is the
bulk of finishing rdar://13327098.


Swift SVN r14653
2014-03-04 22:15:46 +00:00
Dmitri Hrybenko
0c4c291d20 Fix code completion in variable initializers that are not at the top level
Code completion used to suggest non-static members in member var initializer,
and incorrectly reported the reason why the declarations are visible from the
initializer.


Swift SVN r14457
2014-02-27 11:13:25 +00:00
Joe Groff
98d6fecc99 '.metatype' -> '.Type'
Also, reserve 'type' as a keyword for ensuing syntax changes.

Swift SVN r14375
2014-02-26 04:23:21 +00:00
Dmitri Hrybenko
15e3dd2e6d Code completion: don't crash on didSet/willSet
User can not call them directly, so code completion now skips them just like
getters and setters.

This is part of fixing rdar://15849262


Swift SVN r14341
2014-02-25 17:34:15 +00:00
Joe Pamer
f83f94d9d8 Support build and target configurations
These changes add support for build and target configurations in the compiler.
Build and target configurations, combined with the use of #if/#else/#endif allow
for conditional compilation within declaration and statement contexts.

Build configurations can be passed into the compiler via the new '-D' flag, or
set within the LangOptions class. Target configurations are implicit, and
currently only "os" and "arch" are supported.

Swift SVN r14305
2014-02-24 18:16:48 +00:00
Dmitri Hrybenko
06be7781f8 Fix code completion for 'inout' by completing '&' in the function argument
Partially addresses rdar://15999689


Swift SVN r14299
2014-02-24 12:48:56 +00:00
Chris Lattner
9ee7d99a46 switch a few things off of argument patterns, onto body patterns.
Swift SVN r13891
2014-02-14 01:33:14 +00:00
Chris Lattner
827acad533 Various inout improvements:
- purge @inout from comments in the compiler except for places talking about
   the SIL argument convention.
 - change diagnostics to not refer to @inout
 - Change the astprinter to print InoutType without the @, so it doesn't show
   up in diagnostics or in closure argument types in code completion.
 - Implement type parsing support for the new inout syntax (before we just 
   handled patterns).
 - Switch the last couple of uses in the stdlib (in types) to inout.
 - Various testcase updates (more to come).



Swift SVN r13564
2014-02-06 06:22:27 +00:00
Chris Lattner
79cbda7f88 convert a heck of a lot of tests to use the new inout syntax (yay for regex's),
and implement code completion and ast-printer support for the new syntax.



Swift SVN r13562
2014-02-06 05:35:36 +00:00
Doug Gregor
04475c6a85 Use @unchecked optionals for member references into AnyObject/AnyClass.
This eliminates the need for a number of !'s when dealing with
Objective-C APIs. Now with actual executable behavior!


Swift SVN r13483
2014-02-05 07:58:18 +00:00
Dmitri Hrybenko
b2938db915 Code completion: simplify code using the new getInnermostMethodContext() function
Swift SVN r13430
2014-02-04 11:36:19 +00:00
Argyrios Kyrtzidis
1d6fdcbe97 [IDE] Code-completion: References to types should not mention ".metatype"
rdar://15805275

Swift SVN r13062
2014-01-28 19:38:42 +00:00
Argyrios Kyrtzidis
6e1d1c0b10 [IDE] Adding ".metatype" is not a valid completion in an expression context but it is valid in
a type context.

Swift SVN r13061
2014-01-28 19:38:40 +00:00
Doug Gregor
d52cec4b20 Eliminate a pile of literal identifiers for self, init, destructor, etc.
... because I can't stomach adding another one of these.


Swift SVN r12687
2014-01-22 01:09:49 +00:00
John McCall
1ccf23487e Remove unnecessary ASTContext& argument from getOptionalObjectType().
Swift SVN r12344
2014-01-15 21:00:58 +00:00
Argyrios Kyrtzidis
cb6a006f19 [IDE] Fix crash during code-completion with invalid code.
Swift SVN r12093
2014-01-09 09:47:23 +00:00
Chris Lattner
d2a33362dc Fix getRValueType() to not strip off @inout types, only @lvalue types.
- Introduce a new TypeBase::getInOutObjectType() that strips off @inout types
- Switch stuff that is calling getRValueType() to call getInOutObjectType()
  when they are stripping @inout, not @lvalue (this is primarily around
  stuff working with self)
- Update testcases, some diagnostics improve around & handling.

This fixes rdar://15708430 and rdar://15729093.



Swift SVN r11794
2014-01-01 18:56:44 +00:00
Dmitri Hrybenko
537e1259f8 Code completion: annotate associated types with concrete style while completing expressions
Swift SVN r11537
2013-12-21 04:11:22 +00:00
Dmitri Hrybenko
8c76b4c0b4 Code completion: when reporting associated type aliases, try to annotate them with concrete types
Swift SVN r11536
2013-12-21 02:59:42 +00:00
Chris Lattner
b29748a6be remove the ASTContext argument from Type::transform,
(various) FunctionType::get's, ArrayType::get,
ArraySliceType::get, OptionalType::get, and a few
other places.

There is more to be done here, but this is all I plan to do
for now.


Swift SVN r11497
2013-12-20 02:23:21 +00:00
Joe Groff
017440165e Fix the weird capitalization of MetaTypeType.
Swift SVN r11475
2013-12-19 18:43:08 +00:00
John McCall
dfe138fdc4 Build and register the PDB earlier, removing the need for a
special case in code-completion.

Swift SVN r11179
2013-12-12 03:36:30 +00:00
John McCall
342a8b35db Parse default-argument expressions in an initializer context.
Swift SVN r11178
2013-12-12 03:36:27 +00:00
Dmitri Hrybenko
6a776132d2 Code completion: don't substitute generic parameters if the actual parameters
are just canonical generic types

Fixes rdar://15588242 using a different approach than suggested in the radar.


Swift SVN r10904
2013-12-06 02:15:23 +00:00
Jordan Rose
417b5d3982 Merge TranslationUnit into Module, and eliminate the term "translation unit".
This completes the FileUnit refactoring. A module consists of multiple
FileUnits, which provide decls from various file-like sources. I say
"file-like" because the Builtin module is implemented with a single
BuiltinUnit, and imported Clang modules are just a single FileUnit source
within a module.

Most modules, therefore, contain a single file unit; only the main module
will contain multiple source files (and eventually partial AST files).

The term "translation unit" has been scrubbed from the project. To refer
to the context of declarations outside of any other declarations, use
"top-level" or "module scope". To refer to a .swift file or its DeclContext,
use "source file". To refer to a single unit of compilation, use "module",
since the model is that an entire module will be compiled with a single
driver call. (It will still be possible to compile a single source file
through the direct-to-frontend interface, but only in the context of the
whole module.)

Swift SVN r10837
2013-12-05 01:51:15 +00:00
Dmitri Hrybenko
e2b8312797 Code completion: try to substitute generic arguments when completing
a constructor reference


Swift SVN r10820
2013-12-04 23:54:42 +00:00
Dmitri Hrybenko
b3cf7d7a08 Code completion: remove redundant parentheses that were being shown in the
types of the implicitly curried instance functions


Swift SVN r10807
2013-12-04 23:07:18 +00:00
Dmitri Hrybenko
25d0ab2c3a Code completion: substitute generic parameters in references to members of metatypes
Swift SVN r10801
2013-12-04 22:44:00 +00:00
Dmitri Hrybenko
6d3f2f9f45 Code completion: when completing a reference to a variable that comes from a
generic nominal, substitute known generic parameters if possible


Swift SVN r10788
2013-12-04 19:31:00 +00:00
Dmitri Hrybenko
541c04f7af Code completion: switch constructor completion from using argument patterns to
use type of the constructor member


Swift SVN r10787
2013-12-04 18:51:05 +00:00
Dmitri Hrybenko
d076501cca Don't repeat Context.getIdentifier("self") everywhere in the code base
Swift SVN r10786
2013-12-04 18:42:34 +00:00
Dmitri Hrybenko
e974992039 Code completion: when completing a call to a function that comes from a generic
nominal, substitute known generic parameters if possible

This should improve code completion experience for generic containers a lot:

(swift) var a = Array<Float>()
// a : Array<Float> = []
(swift) a.
...
  Decl[InstanceMethod]/CurrNominal:   append({#val: Float#})[#Void#]
...
  Decl[InstanceMethod]/CurrNominal:   each({#f: (Float) -> Void#})[#Void#]
...
  Decl[InstanceMethod]/CurrNominal:   enumerate()[#Array<Float>#]
...
  Decl[InstanceMethod]/CurrNominal:   next()[#Float?#]
...
  Decl[InstanceMethod]/CurrNominal:   sort({#pred: (Float, Float) -> Bool#})[#Void#]
...

Only implemented for functions.  Constructors and subscripts coming soon.


Swift SVN r10774
2013-12-04 02:33:16 +00:00
Dmitri Hrybenko
12c525a4d1 Code completion: add parentheses in all cases when completing enum elements
with payloads


Swift SVN r10773
2013-12-04 02:02:28 +00:00
Dmitri Hrybenko
4d827aa7d5 Replace an unnamed namespace with a static specifier on the function
Swift SVN r10766
2013-12-03 23:39:30 +00:00
Dmitri Hrybenko
47951efcb9 Implement code completion support for static variables
Swift SVN r10487
2013-11-15 01:32:20 +00:00
John McCall
00dad2e89f Thread an isSILType bit through the validateType APIs.
Has no effect... yet.

Swift SVN r9983
2013-11-06 01:56:40 +00:00
Chris Lattner
68af974227 Remove 'axle' related code and build machinery. It turns out that we
will not be pursuing this project in the immediate future.



Swift SVN r9901
2013-11-03 16:04:27 +00:00
Dmitri Hrybenko
fb08372e10 Code completion tests: check declaration kind, it is computed with non-trivial logic now
These tests revealed this bug: rdar://15353073


Swift SVN r9800
2013-10-30 18:05:55 +00:00
Argyrios Kyrtzidis
e31c93add3 [AST] The ASTContext parameter in FuncDecl::getResultType() is not really needed.
Swift SVN r9798
2013-10-30 17:09:56 +00:00
Dmitri Hrybenko
a2da6e5f1a Code completion: use imports only from the current SourceFile
Prevents duplicating results and displaying results from modules that are not
imported in this SourceFile.


Swift SVN r9713
2013-10-28 18:31:05 +00:00
Jordan Rose
ec4234bdbc Perform unqualified lookup using the current SourceFile as context.
And, properly treat imports as per-file: when looking up decls through the
TU module, don't pick up every other source file's imports.

This implements our resolution rules:
1. Check the current source file.
2. Check the current module.
3. Check imported modules.

Currently, "import Foo" is treated as a file-private import and
"@reexported import Foo" is treated as a public /and/ module-wide import.
This further suggests that access control is the right tool for re-export
control:

(private) import Foo // current file only
package import Foo   // whole module
public import Foo    // whole world

Swift SVN r9682
2013-10-25 22:21:12 +00:00
Dmitri Hrybenko
a927afa412 Remove unused #includes
Swift SVN r9662
2013-10-24 22:54:34 +00:00
Dmitri Hrybenko
341c4e07a9 Code completion result caching: update result set cost in libcache after we
have created the result set


Swift SVN r9660
2013-10-24 22:20:58 +00:00
Dmitri Hrybenko
0cafcee4c0 Code completion: add more assertions
Swift SVN r9659
2013-10-24 22:20:05 +00:00
Dmitri Hrybenko
045c0b99e3 Code completion result cache: implement cache invalidation
Swift SVN r9656
2013-10-24 21:46:11 +00:00
Dmitri Hrybenko
b7d3a23518 Code completion result cache: use libcache
Swift SVN r9653
2013-10-24 20:59:28 +00:00
Argyrios Kyrtzidis
d64313d169 [IDE] Use a switch to convert to CodeCompletionDeclKind, to make sure we cover every decl kind.
Also add the GenericTypeParam for kind.

Swift SVN r9640
2013-10-24 17:47:26 +00:00