regis@google.com
e6e70d7bb2
Allocate types in proper heap space.
...
Allow type finalization without canonicalization.
Review URL: https://chromiumcodereview.appspot.com//10696155
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9529 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-10 21:54:13 +00:00
regis@google.com
32c8564b0a
Add --trace_type_check_elimination flag for debugging purposes.
...
Review URL: https://chromiumcodereview.appspot.com//10689099
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9471 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-09 16:59:15 +00:00
regis@google.com
d95cbc8d7f
Use VM type cast and save handles.
...
Review URL: https://chromiumcodereview.appspot.com//10693071
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9317 260f80e4-7a28-3924-810f-c04153c831b5
2012-07-02 21:42:53 +00:00
regis@google.com
1036a3888f
Consider upper bounds of type parameters in type checks.
...
Fix pointer visiting in TypeParameter.
Make TypeParameter::index() non-virtual.
Review URL: https://chromiumcodereview.appspot.com//10696013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9188 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-27 20:08:30 +00:00
asiva@google.com
5cbd276939
Make the parser agnostic to the TokenStream implementation. This is the first step towards compacting the token stream.
...
Pull the data stream writer/reader code out of snapshot into a generic file so that it can be reused into the token stream compaction implementation.
Review URL: https://chromiumcodereview.appspot.com//10632009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@9043 260f80e4-7a28-3924-810f-c04153c831b5
2012-06-22 20:37:01 +00:00
iposva@google.com
bee192cbe4
- Rename class index to class id.
...
- Remove unused method.
Review URL: https://chromiumcodereview.appspot.com//10441111
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@8148 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-31 12:41:37 +00:00
regis@google.com
9c094b4330
Properly finalize type with malformed type argument.
...
Add test.
Review URL: https://chromiumcodereview.appspot.com//10411070
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7871 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-22 18:59:14 +00:00
regis@google.com
b3c4682a81
Remove compile-time error for unresolved factory names (issue 3079).
...
Add test.
Review URL: https://chromiumcodereview.appspot.com//10332276
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7822 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-21 20:42:34 +00:00
regis@google.com
6fb0a9b281
Default parameter values are now allowed in interface methods and in abstract
...
methods, but not in function type aliases.
Made a negative test positive.
Disabled erroneous co19 tests (new co19 issue 123).
Review URL: https://chromiumcodereview.appspot.com//10392175
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7782 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 23:59:59 +00:00
regis@google.com
f5076a5857
Reapply this reverted change:
...
Implement updated method overriding rules (issue 2943).
Review URL: https://chromiumcodereview.appspot.com//10387186
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7749 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 16:19:39 +00:00
regis@google.com
599ab6e3ca
Revert r7729 until Dartium fixes its method override errors.
...
Review URL: https://chromiumcodereview.appspot.com//10399080
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7730 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 01:04:34 +00:00
regis@google.com
2b00b92ab9
Implement updated method overriding rules (issue 2943).
...
Add language test.
Review URL: https://chromiumcodereview.appspot.com//10388189
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7729 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-18 00:28:57 +00:00
regis@google.com
5d9dab620c
Implement latest rules prohibiting some self referencing typedefs.
...
Update tests.
Review URL: https://chromiumcodereview.appspot.com//10377095
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7524 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-10 23:03:36 +00:00
regis@google.com
a1fcd03ca6
Allow self referencing typedefs (issue 2490).
...
Fix Type::Name for malformed function types (issue 2340).
Added tests.
Removed bad negative test.
Review URL: https://chromiumcodereview.appspot.com//10388019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7422 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-08 16:27:43 +00:00
cshapiro@google.com
1472427af8
Revert "Revert "Implement {Int,Uint}{8,16,32,64} and Float{32,64} typed arrays.""
...
This reverts commit 63480a81fccbde001494dd535cd06a8fa02ed261.
Review URL: https://chromiumcodereview.appspot.com//10379018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7352 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 23:16:09 +00:00
cshapiro@google.com
3a14326da4
Revert "Implement {Int,Uint}{8,16,32,64} and Float{32,64} typed arrays."
...
This reverts commit 747dbeaa8f9c0dc1f49d6d6a369c6a3fe2d8b7c9.
Review URL: https://chromiumcodereview.appspot.com//10375007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7313 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 05:28:10 +00:00
cshapiro@google.com
537010ea16
Implement {Int,Uint}{8,16,32,64} and Float{32,64} typed arrays.
...
Internal and external representations of each array are provided. A
single interface type implementing the ByteArray and List interfaces
is shared among the internal and external implementation type.
Review URL: https://chromiumcodereview.appspot.com//9958046
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7311 260f80e4-7a28-3924-810f-c04153c831b5
2012-05-04 05:12:19 +00:00
regis@google.com
c2f823d92b
Support cyclic types and F-bounded quantification (issue 439).
...
Added tests for F-bounded quantification.
Review URL: https://chromiumcodereview.appspot.com//10243001
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@7047 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-26 22:39:27 +00:00
regis@google.com
efa92f5447
Mark types as instantiated or uninstantiated upon finalization.
...
Review URL: https://chromiumcodereview.appspot.com//10205006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6894 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-24 16:15:37 +00:00
regis@google.com
ac6cb8cb66
Map malformed function result type and malformed function parameter type to
...
Dynamic in production mode (fix issue 5532534).
Fix bad negative test and make it positive.
Review URL: https://chromiumcodereview.appspot.com//10143004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6777 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-19 22:59:58 +00:00
regis@google.com
f955de9bc0
Throw a type error in production mode when the type of the type test is not
...
declared (issue 2571).
Add test.
Delete bad negative test now covered by new test.
Update status files of different compilers.
Review URL: https://chromiumcodereview.appspot.com//10035058
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6754 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-19 17:01:28 +00:00
hausner@google.com
475fbca314
Implement implicit interfaces
...
Amazingly, this small change is all it seems to take to implement
implicit interfaces.
Review URL: https://chromiumcodereview.appspot.com//10103009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6607 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-16 22:21:54 +00:00
regis@google.com
85e4a9c054
Do not require type class to be finalized when performing a type test.
...
However, make sure that the interfaces are resolved (issue 2523).
A later change will cleanup interface resolution code.
Review URL: https://chromiumcodereview.appspot.com//10050034
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6446 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-12 00:18:43 +00:00
srdjan@google.com
1125846660
When checking against non-parametrized types use a cache to hold result tuples (class, result). That cache is stored in the instruction stream. Currently implemented for instanceof, ia32 only. Should migrate to other type tests and architectures.
...
70x improvement on a benchmark (similar to what is seen in html _unwrap).
Review URL: https://chromiumcodereview.appspot.com//10010029
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6281 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-06 16:05:55 +00:00
regis@google.com
9ff0afa50e
Do not require upper bounds to be resolved and finalized before comparing them
...
between the expected and actual factory class (issue 2431).
Add test.
Review URL: https://chromiumcodereview.appspot.com//10008017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6236 260f80e4-7a28-3924-810f-c04153c831b5
2012-04-05 18:11:42 +00:00
regis@google.com
5282e44fb2
Use null type argument vector instead of vector of Dynamic for a generic raw
...
type when possible.
Fix type finalization of type parameters (always finalize in the context of the
class being parameterized and not in the enclosing class where the type
parameter is used).
Fix wrong generic optimization and added a test (a generic type instantiated
from a raw instantiator is not always raw).
Added printing of type argument vectors.
Review URL: https://chromiumcodereview.appspot.com//9939003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@6068 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-30 22:16:52 +00:00
regis@google.com
33bd965e2a
Generate a dynamic type error when creating an instance with a bound error.
...
Review URL: https://chromiumcodereview.appspot.com//9665013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5250 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-09 21:15:11 +00:00
asiva@google.com
e4d024664e
Add a first class GrowableObjectArray type in the VM and use it internally in the VM at all spots were we use GrowableArray first and then copy the contents into an Array object.
...
Next step is to use this type in growable_array.dart
Review URL: https://chromiumcodereview.appspot.com//9594028
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5109 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-07 19:14:02 +00:00
regis@google.com
f4ddc43cdf
Generate dynamic type errors according to spec.
...
Fix a few bad tests.
Turn a couple negative tests in multi-tests.
Triage a few co19 failing tests.
Still to do:
Check bounds of generic types at runtime in checked mode.
Stop reporting bounds error in new operator as a compile time error.
Review URL: https://chromiumcodereview.appspot.com//9615035
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@5064 260f80e4-7a28-3924-810f-c04153c831b5
2012-03-07 02:23:12 +00:00
regis@google.com
47724a8491
Add support for malformed types and postpone some related errors from compile
...
time to execution time.
Still to do (once spec is clarified):
- properly handle generic type bounds errors
- properly handle 'instance of' type checks involving malformed types
- fix bad tests
Review URL: https://chromiumcodereview.appspot.com//9515011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4732 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-29 02:14:18 +00:00
regis@google.com
1442b01a25
Fix typo in --verify_implements functionality (issue 1291).
...
Review URL: https://chromiumcodereview.appspot.com//9433047
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4481 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 18:42:09 +00:00
regis@google.com
25fcaf5044
Generic bound errors are static type errors not to be reported by the VM.
...
Review URL: https://chromiumcodereview.appspot.com//9428015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4476 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-22 17:48:05 +00:00
asiva@google.com
3983c61041
Implement capability to use the same library prefix for multiple library imports (currently this is flagged as an error).
...
e.g:
#import("mylib101.dart", prefix:"mylib");
#import("mylib102.dart", prefix:"mylib");
#import("mylib103.dart", prefix:"mylib");
Review URL: https://chromiumcodereview.appspot.com//9363048
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4289 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-15 20:53:28 +00:00
regis@google.com
83e063f330
Simplify type resolution in parser.
...
Review URL: https://chromiumcodereview.appspot.com//9395017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4240 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-15 00:44:16 +00:00
regis@google.com
851682f104
Represent declared type parameters of a class as an array of TypeParameter
...
rather than an array of String and simplify code accordingly.
Rename the field holding type parameter bounds of a class.
Note: I retract my earlier suggestion to Srdjan to represent interfaces of a
class (as well as its canonical types) as a TypeArguments. This would require
more code to check for an empty array and for growing the array. Besides, these
are really arrays and have nothing to do with type arguments. I removed the
corresponding TODO(srdjan).
Review URL: https://chromiumcodereview.appspot.com//9368032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@4096 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-09 21:28:53 +00:00
regis@google.com
2edb4ae9c7
Add token index position to classes and types for more accurate error reporting.
...
Review URL: https://chromiumcodereview.appspot.com//9325047
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3965 260f80e4-7a28-3924-810f-c04153c831b5
2012-02-06 19:52:02 +00:00
regis@google.com
980cbf9c74
Store resolved library prefix in unresolved class object in order not to repeat
...
unnecessary library prefix resolution.
Remove redundant Type::NewParameterizedType() helper.
Simplify parsing of qualified identifiers.
Cleanup parsing of factory methods.
Fix resolution of imported types (add tests).
Review URL: https://chromiumcodereview.appspot.com//9233039
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3703 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-31 00:07:07 +00:00
regis@google.com
76a765b72f
Simplify parsing of 'new' operator.
...
Fix checking of default factory type parameters (add new tests).
Start cleanup of class resolution code in parser and finalizer.
Review URL: https://chromiumcodereview.appspot.com//9290065
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3632 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-26 23:50:29 +00:00
cshapiro@google.com
569ef3c044
Add ByteArray interface and provide internal and external implementations.
...
The new ByteArray interface supersedes the ByteBuffer type which allowed
only external data storage. This type has been removed and replaced by
the more flexible ByteArray with a default implementation that stores its
elements on the managed heap.
Review URL: https://chromiumcodereview.appspot.com//9195031
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3613 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-26 02:42:08 +00:00
regis@google.com
54bf52428d
Allow the list of type parameters in the default factory clause to be omitted.
...
Review URL: https://chromiumcodereview.appspot.com//9169032
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3587 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-25 01:30:14 +00:00
regis@google.com
f9e785eb29
Remove support for obsolete syntax of factory methods and default classes.
...
Review URL: https://chromiumcodereview.appspot.com//9285031
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3578 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-24 22:37:45 +00:00
turnidge@google.com
53ba5c402e
Make the "sticky error" an Error instead of a String.
...
I do this in preparation for using the sticky error to implement
isolate unwinding.
Review URL: https://chromiumcodereview.appspot.com//9186058
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@3367 260f80e4-7a28-3924-810f-c04153c831b5
2012-01-17 19:54:02 +00:00
iposva@google.com
5b509684e3
- Fix outdated use of factory clause.
...
- Update error messages.
Review URL: http://codereview.chromium.org//8949043
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2707 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-21 17:26:02 +00:00
regis@google.com
4e76761dd5
Rename type parameter to comply with upcoming corelib changes.
...
Update error message in class finalizer.
Review URL: http://codereview.chromium.org//8933014
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2398 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-13 21:19:36 +00:00
regis@google.com
5db4de9756
Implement revised factories in the VM.
...
Emit warnings when obsolete syntax is used.
Review URL: http://codereview.chromium.org//8921033
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2394 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-13 19:35:07 +00:00
regis@google.com
dd32effb72
Adjust index of type parameters at finalization time (fix issue 718).
...
Add test.
Review URL: http://codereview.chromium.org//8872037
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2286 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-08 23:00:55 +00:00
srdjan@google.com
f98993384f
Canonicalize TypeArguments.
...
Review URL: http://codereview.chromium.org//8773026
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2133 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-06 17:47:47 +00:00
srdjan@google.com
d07087ce77
Ongoing renaming of type classes:
...
TypeArguments -> AbstractTypeArguments
TypeArray -> TypeArguments
Review URL: http://codereview.chromium.org//8776020
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@2002 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 23:19:59 +00:00
srdjan@google.com
2ff4d8a207
Address Regis' comments, replace AbstractType with Type where possible.
...
Review URL: http://codereview.chromium.org//8772009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1992 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 21:14:48 +00:00
srdjan@google.com
17552e9a3c
Renaming type classes as discussed:
...
Type -> AbstractType
ParameterizedType -> Type
TODO:
TypeArguments -> AbstractTypeArguments
TypeArray -> TypeArguments
Review URL: http://codereview.chromium.org//8761011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@1987 260f80e4-7a28-3924-810f-c04153c831b5
2011-12-01 16:54:52 +00:00