summaryrefslogtreecommitdiff
path: root/sources/scalac/symtab/Type.java
diff options
context:
space:
mode:
authorschinz <schinz@epfl.ch>2003-05-14 13:04:13 +0000
committerschinz <schinz@epfl.ch>2003-05-14 13:04:13 +0000
commit7f08642a0a44a90da287e176f3a820e328ce6d3d (patch)
tree556a686e86befc6adbbbd1a39ece0ca9e370d35d /sources/scalac/symtab/Type.java
parentb9ff893fdfcca3f97c5c953ba46461cf623c4b14 (diff)
downloadscala-7f08642a0a44a90da287e176f3a820e328ce6d3d.tar.gz
scala-7f08642a0a44a90da287e176f3a820e328ce6d3d.tar.bz2
scala-7f08642a0a44a90da287e176f3a820e328ce6d3d.zip
- added valueParams method
Diffstat (limited to 'sources/scalac/symtab/Type.java')
-rw-r--r--sources/scalac/symtab/Type.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/sources/scalac/symtab/Type.java b/sources/scalac/symtab/Type.java
index f201027d75..110a0f80bc 100644
--- a/sources/scalac/symtab/Type.java
+++ b/sources/scalac/symtab/Type.java
@@ -369,6 +369,23 @@ public class Type implements Modifiers, Kinds, TypeTags {
return Symbol.EMPTY_ARRAY;
}
+ /** Get value parameters of method or EMPTY_ARRAY if not
+ * applicable.
+ */
+ public Symbol[] valueParams() {
+ switch (this) {
+ case PolyType(_, Type result):
+ return result.valueParams();
+ case MethodType(Symbol[] vparams, _):
+ return vparams;
+ case TypeRef(_, Symbol sym, _):
+ if (sym.kind == CLASS) return sym.valueParams();
+ else return sym.info().valueParams();
+ default:
+ return Symbol.EMPTY_ARRAY;
+ }
+ }
+
/** If this type is a (possibly polymorphic) method type, its result type
* after applying all method argument sections,
* otherwise the type itself.